为什么这个代码输入stop后没有退出循环
#include<stdio.h>#include <string.h>
int main(void)
{
/*********Begin*********/
char ch[]={"\0"};
int a=0,b,n,m;
for(a=0;ch!=0;a++){
gets(ch);
if(ch=="stop"){
break;
}
}
for(b=0;b<a;b++){
n=strlen(ch);
printf("%d name\n",n);
}
/*********End**********/
return 0;
} 问题出在这一行代码: if(ch=="stop") 。在C语言中,字符串的比较不能使用 == 操作符,因为 == 比较的是字符串的地址而不是字符串的内容。正确的比较字符串的方法是使用 strcmp 函数。
正确的代码应该是这样的:
if(strcmp(ch, "stop") == 0)
这样就能够正确比较字符串的内容了。
页:
[1]