我最近开始学习C编程语言。我想写一个简单的是/否程序,但是,我的代码中有一个错误,我似乎无法找到解决方案。
以下是代码:
#include <stdio.h>
int main()
{
char answer[10];
printf("do you like programming? yes/no\n");
scanf(" %s", &answer);
if((answer == 'yes')|| (answer == 'no')){
printf("you are awesome\n");
}
else{
printf("try again\n");
}
return 0;
}
当我使用y / n而不是yes / no时,程序运行正常。 我知道我需要用字符串替换char,但我不知道该怎么做。我在某处读到了我需要使用一个名为strcmp的函数,但我不知道如何使用它。如果有人能帮助我,我会非常感激。
提前致谢!
答案 0 :(得分:0)
键入时
if((answer == 'yes')|| (answer == 'no'))
,在这种情况下,==
运算符不是比较字符串,而是比较字符串的指针。要测试字符串的相等性,请使用strcmp
。您的if
声明会看起来像这样:
#include <string.h>
...
if(strcmp(answer, "yes") == 0 || strcmp(answer, "no") == 0) {
...