1215787625 发表于 2023-11-22 10:46:32

为什么这个代码输入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;
}

isdkz 发表于 2023-11-22 10:46:38

问题出在这一行代码: if(ch=="stop") 。在C语言中,字符串的比较不能使用 == 操作符,因为 == 比较的是字符串的地址而不是字符串的内容。正确的比较字符串的方法是使用 strcmp 函数。

正确的代码应该是这样的:
if(strcmp(ch, "stop") == 0)

这样就能够正确比较字符串的内容了。
页: [1]
查看完整版本: 为什么这个代码输入stop后没有退出循环