C中带字符串的If逻辑条件
我在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否。没有任何
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);
}