我';我做错了?带有scanf的if语句不能与输入一起正常工作
我正在尝试开发一个小程序,该程序如下所示: 当我运行程序时,即使输入正确,它也会给出else中描述的输出我';我做错了?带有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
#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);
而且
'TOEFL'
必须生成关于多字符常量的警告,不要忽略它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;
}