if (strcmp(a,b)==0) break; 为什么错了?

如题所述

有好多问题a 只是指针 没有指向正确的空间。
应该定义成 char a[20];
另外 scanf("%s",&a);对于指针a不应该再用&a作为参数,对于数组a 这么写,木有运行错误。正确的应该是scanf("%s",a);
你比较始终不对是因为输入的内容木有正确的写入到a。追问

只是strcmp那个if出现了问题,其他运行正常

追答

你比较始终不对是因为输入的内容木有正确的写入到a。不信的话加入 printf 看看a的内容。下回提问的话记得把代码一起copy上来。不然我们怎么运行。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-04
a和b必须要以‘\0’结尾,兄弟追问

兄弟,我是字符串啊!

追答

你把前面的代码贴出来看看呗

追问

追答

char *a ;
char *b ;
仅仅定义了一个指针,scanf("%s",&a)读进来的数据是个字符串,存储在哪里?
这样改:
char a[100];
scanf("%s",a);
要自己给读进来的字符串分配存储空间。
你试试。

if (strcmp(a,b)==0) break; 为什么错了?
你比较始终不对是因为输入的内容木有正确的写入到a。

c语言中 !strcmp(a,b)是什么意思?注意有个感叹号!
strcmp是个比较函数,用法就是a>b返回1,a<b返回-1,a==b返回0.C语言规定非0为真,0为假。!号是取非,即把0变成1,非0变成0;假设a=5,b=4那么a>b,返回结果为1,取非之后为0,既为假.就不会执行下面的break语句。假设a=4,b=5结果为a<b,返回值为-1,取非之后也是0,还是假,也不会执行下面的break语...

判断字符串a和b是否相等,应当使用
判断字符串a和b是否相等,应当使用if(strcmp(a,b)= =0)。知识点:字符串比较函数strcmp的功能。strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正...

C语言中关于strcmp函数的问题,下面一题为什么不对???
strcmp函数当a和b相等时返回0,否则不相等 所以判断if(strcmp(a,b))的结果不是能否比较,而是是否相等,if成立则不相等,否则相等

c语言中用scanf函数输入字符串后用strcmp函数比较,出现的小问题...
那个,字符串是有结尾符的啊。长度应该声明为3.int main(){ char a[3]; char b[3]="ab"; scanf("%s",a); if(strcmp(a,b)==0) printf("正确\\n"); else printf("错误\\n"); return 0;}

if(strcmp(q->Name,temp)==0)是什么意思 if(!strcmp(q->Name,temp...
比如有一个指针变量p,它指向一个结构体类型的对象。用p->num代替(*p).num,表示p所指向的结构体变量中的num成员,以此类推。。。第一句话,是说,如果q->name和temp比较二者相等,那么继续。。。下面那句话是说如果strcmp(q->Name,temp)的值是假的,就是值小于等于0,那么继续。。。

c语言中,if(strcmp(,“”)==0)是什么意思??
strcmp(stu[i].sex,"男"),就是比较stu[i].sex的内容是否是"男",如果是,就返回0

if(strcmp("我",a)==0)是什么意思我知道strcmp是字符串的比较怎么可以用...
如果字符串a[]="我";strcmp("我",a)==0则为真,否则为假!由此可以判断字符串a[]是否输入的是"我";

C++ 比较2个字符串数据是否相等
strcmp(a,b)==0 :相等 <0 字符串a更小,>0字符串a更大 但是b[]="",cin>>b 是错误的 如果要输入字符串到一个字符数组中,必须先申请数组大小 char b[10]; \/\/ 类似这样的 cin>>b;

请问C++中 if(!strcmp(A,B)) 中的!strcmp代表什么意思
strcmp(s1,s2)为字符串比较函数,比较的是从字符串的第一个字符开始比较他的ASCLL码值,跟字符串的长度无关。当s1 > s2 时,返回值 > 0 当s1 = s2 时,返回值 = 0 当s1 < s2时,返回值 < 0 ! 为逻辑非运算符,即当值为真时改成假,值为加时改成真 在程序设计的判断真假中0为假,...

相似回答