我正在尝试从用户那里获取字符串输入,然后根据输入的输入运行不同的函数。
例如,我说,“你最喜欢的水果是什么?”我希望程序根据他们输入的内容发表评论...我不知道该怎么做。这是我到目前为止所做的:
#include <stdio.h>
#include <string.h>
char fruit[100];
main() {
printf("What is your favorite fruit?\n");
fgets (fruit, 100, stdin);
if (strcmp(fruit, "apple")) {
printf("Watch out for worms!\n");
}
else {
printf("You should have an apple instead.\n");
}
}
当我运行程序时,无论我输入什么,它都不会发出else语句。
感谢您的帮助!
答案 0 :(得分:3)
请注意代码中的两件事:
int main(){ return 0;}
修订后的代码:
#include <stdio.h>
#include <string.h>
char fruit[100];
int main() {
printf("What is your favorite fruit?\n");
fgets (fruit, 100, stdin);
fruit[strlen(fruit)-1] = '\0';
if (strcmp(fruit, "apple") == 0) {
printf("Watch out for worms!\n");
}
else {
printf("You should have an apple instead.\n");
}
return 0;
}
答案 1 :(得分:1)
将if
条件更改为以下内容:
if(strcmp(fruit,"apple") == 0)
如果匹配, strcmp
返回0个字符串。您应始终使用==
运算符
答案 2 :(得分:0)
strcmp
返回0,如果左边比右边更大,则返回一些值> 0;如果左边比右边“更小”,则返回一些值<0。所以通常你只想用strcmp(...)==0
测试相等性。但是还有聪明的版本:!strcmp(...)
。即使你不使用这种风格,学习识别它也很有用。
请记住,fgets
不会从字符串中删除换行符'\n'
。