【发布时间】:2010-04-05 00:19:18
【问题描述】:
我正在尝试创建一个基于 C 的字符串菜单,用户在其中输入命令,然后运行一段代码。
无论我做什么,条件都不是真的:
char *input= "";
fgets(input, 50, stdin);
printf("%s",input);
printf("%d",strcmp( input,"arrive\0"));
if(strcmp( input,"arrive\0")==0){....
我对 c 还很陌生,发现字符串真的很烦人。
我做错了什么?
注意:当前代码使我的程序崩溃:(
【问题讨论】:
-
请考虑使用 strncmp() 而不是 strcmp(),这样可以省去很多麻烦。
-
为什么 strcmp() 会引起头痛?
-
@TimPost strcmp() 工作得非常好,它完全符合它的预期 - 比较 2 个字符串,这在这种情况下似乎是合适的。 strncmp() 当然也可以很好地工作,但它并不能减轻头痛,而且它既不是更好也不是 strcmp() 的替代品