我';我做错了?带有scanf的if语句不能与输入一起正常工作

我';我做错了?带有scanf的if语句不能与输入一起正常工作,c,C,我正在尝试开发一个小程序,该程序如下所示: 当我运行程序时,即使输入正确,它也会给出else中描述的输出 #include <stdio.h> #include <stdlib.h> int main() { char course; printf("Enter Your Course Name: \n"); scanf(" %s", &course); if (course == 'TOEFL') { pri

我正在尝试开发一个小程序,该程序如下所示: 当我运行程序时,即使输入正确,它也会给出else中描述的输出

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

int main()
{
    char course;

    printf("Enter Your Course Name: \n");
    scanf(" %s", &course);

    if (course == 'TOEFL') {
        printf("Yes, you are eligible \n");
    } else {
        printf("You Can Not Join Us \n");
    }

    return 0;
}
#包括
#包括
int main()
{
炭层;
printf(“输入您的课程名称:\n”);
scanf(“%s”和“课程”);
如果(课程=‘托福’){
printf(“是的,您有资格\n”);
}否则{
printf(“您不能加入我们\n”);
}
返回0;
}
你是说

scanf(" %c", &course);
而且

  • c中的字符串必须用双qoutes包装,表达式
    'TOEFL'
    必须生成关于多字符常量的警告,不要忽略它

  • c中的字符串一次比较一个字符,因此需要使用名为
    strcmp()
    的函数进行比较

  • 要读取字符串,需要一个数组来存储它,是的,还需要
    “%s”
    说明符

    char cours[100];
    scanf("%99s", course);
    
    if (strcmp(course, "TOEFL") == 0) ...
    

  • course是一个char变量,因此它只能包含一个字符。 尝试将其声明更改为:

    char course[10];
    
    #包括
    #包括
    int main()
    {
    char course;//此decl只存储单个字符,不存储字符串
    printf(“输入您的课程名称:\n”);
    scanf(“%s”,&course);//传递字符串参数
    如果(course=='TOEFL'){//无法将字符串与==进行比较,请使用strcmp
    printf(“是的,您有资格\n”);
    }否则{
    printf(“您不能加入我们\n”);
    }
    返回0;
    }
    
    课程==“托福”
    …请重新阅读一本C语言书。放入
    #包括
    <代码>字符进程-->
    char课程[16]
    scanf(“%s”,&course)-->
    scanf(“%15[^\n]%*c”,当然)
    if(course='TOEFL'){
    -->
    if(strcmp(course,“TOEFL”)==0){
    我知道我是新手,在这里问了一个非常基本的问题。但是,与其嘲笑,你能建议这种事情如何运作吗?我只想输入并验证它。因此,任何关于解决方案的建议都将不胜感激。这是一个平衡的问题。你问的问题很容易用谷歌自己搜索。有没有答案o这个问题必须教你数组和字符串在C语言中是如何工作的,基本上是C语言书的几个章节。因此,这个问题太广泛了——这个网站不是一个交互式的初学者教程。你不能使用
    =
    来比较字符串。:)
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        char course; //this decl stores only single character not string
    
        printf("Enter Your Course Name: \n");
        scanf(" %s", &course); //passing string argument 
    
        if (course == 'TOEFL') {//can't compare strings with == use strcmp
            printf("Yes, you are eligible \n");
        } else {
            printf("You Can Not Join Us \n");
        }
    
        return 0;
    }