strcmp(a,b)==0的问题
if(strcmp(a,b)==0) { //已经定义了a,bprint("哈哈");
}
无法输出"哈哈"!
以下是我测试为什么不能的原因
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
printf("n=%d,f=%d",a,b);
print("....");
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);
printf("n=%c,f=%c",a,b);结果都是相等的,a和b的值都一样,但是为什么就是不能比较呢?
有点想当然了吧!!
函数原型intstrcmp(const char *s1, const char *s2);
看清楚const char *s1 可不是数字比较 这是比较字符串的
strcmp的两个参数都是字符串,也就是含有字符元素'\0'的字符数组,因为你的数组不含有'\0',所以他们不是字符串,
所以用strcmp会产生不可预知的结果。 仰望天上的光 发表于 2014-3-13 20:51 static/image/common/back.gif
strcmp的两个参数都是字符串,也就是含有字符元素'\0'的字符数组,因为你的数组不含有'\0',所以他们不是字 ...
这就是字符串啊uuu_oo这个字符串,我只是用printf输出他们的十进制是怎么样的 char a = "Hello World";
char b = "Hello World";
这样定义肯定可以的,我不知道你a, b数组怎么定义,你试试这样! Dadi 发表于 2014-3-14 17:54 static/image/common/back.gif
这就是字符串啊uuu_oo这个字符串,我只是用printf输出他们的十进制是怎么样的
你的所谓“字符串”里没有结束字符'\0',所以不是真的字符串 你用strcmp()来比较数字你本事有的
这个函数是比较两个字符串的 ASCII之和的 牡丹花下死做鬼 发表于 2014-5-3 09:43 static/image/common/back.gif
你用strcmp()来比较数字你本事有的
这个函数是比较两个字符串的 ASCII之和的
有点启发,暑假再来做了。
页:
[1]