C中带字符串的If逻辑条件

C中带字符串的If逻辑条件,c,string,equality,C,String,Equality,我在if中的逻辑条件是错误的,我如何修复它?您不能以这种方式比较字符串,请使用,或者最好使用,因为name是字符串,为什么不使用strcmp函数 puts("Type your name"); gets(name); if(name=="exit"){ exit(0); } 怎么会错呢?你期望它做什么?它会做什么?您是否收到错误消息?您正在阅读的书可能重复?为什么推荐strncmp?这会给任何以“exit”开头的字符串一个假阳性。嗯,没错,但它稍微安全一点。@Kninnug否。没有任何

我在if中的逻辑条件是错误的,我如何修复它?

您不能以这种方式比较字符串,请使用,或者最好使用,

因为
name
是字符串,为什么不使用
strcmp
函数

puts("Type your name");
gets(name);
if(name=="exit"){
    exit(0);
}

怎么会错呢?你期望它做什么?它会做什么?您是否收到错误消息?您正在阅读的书可能重复?为什么推荐
strncmp
?这会给任何以“exit”开头的字符串一个假阳性。嗯,没错,但它稍微安全一点。@Kninnug否。没有任何字符串正在被写入,因此
strncmp()
就不安全了。对于以NUL结尾的字符串,完全没有缓冲区溢出的风险。是的,我忘记使用strcmp了,谢谢!
if (strcmp(name, "exit") == 0)
{
  exit(0);
}