用户输入:C中的是或否

时间:2017-01-27 21:12:47

标签: c if-statement input

我似乎无法弄清楚这有什么问题。它编译得很好,但无论我输入什么,无论是或否,它都会跳过“让我们开始”的行并直接走到最后。

#include<stdio.h>
#include<stdlib.h>

int main(){
    char response[5];
    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
    printf("Would you like to go on an adventure?\n Enter Yes or No:");
    scanf("%s", response);
    if (response == "yes"){
        printf("Let's begin!");
    }
    else (response == "no");{
        printf("See you later then!");
    }
    return 0;
}

是否需要移动扫描,或者我只是以某种方式将其搞砸了?

4 个答案:

答案 0 :(得分:1)

更改

if (response == "yes"){

if(!strcmp(response, "yes") {

对于“否”检查,如果要明确检查“否”,请写else if(!strcmp(response, "no") {

答案 1 :(得分:0)

您正在比较字符数组。所以==将不起作用。 要么为2个字符数组实现equals函数,要么使用字符串类。

答案 2 :(得分:0)

if (strcmp(response, "yes")==0){
    printf("Let's begin!");
}
else {
    printf("See you later then!");
}

您无法比较两个char数组。当字符串相同时,从strcmp返回0。一定要包括。

答案 3 :(得分:0)

在c编程中,你不能通过使用赋值运算符直接比较字符数组,而是可以使用strcmp来检查字符串是否相等