使用Logical OR运算符时代码出错

时间:2017-09-17 02:07:09

标签: c

我最近开始学习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的函数,但我不知道如何使用它。如果有人能帮助我,我会非常感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

键入时 if((answer == 'yes')|| (answer == 'no')),在这种情况下,==运算符不是比较字符串,而是比较字符串的指针。要测试字符串的相等性,请使用strcmp。您的if声明会看起来像这样:

#include <string.h>

...

if(strcmp(answer, "yes") == 0 || strcmp(answer, "no") == 0) {

...