我是C编程的新手。你能告诉我,我的代码有什么问题吗?看起来if
语句不起作用,而是跳转并打印else
语句。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char profession;
printf("what is your profession? \n");
scanf(" %s", profession);
if(profession==“QA”)
{
printf(“Go and Test\n“);
}
else
{
printf("Do whatever you want");
}
return 0;
}
答案 0 :(得分:0)
首先,您无法比较C中的字符串,而是使用strcmp
或strncmp
。
其次,在您的代码中,profession
是char
,并且您希望在其中放置一个字符串(多个字符)。它不会起作用。您可以创建char *
(char
上的指针)(不要忘记malloc()
)或char []
(字符数组)。
答案 1 :(得分:0)
首先,C中的字符串是字符数组,因此您必须将专业声明为指针,指向一个字符数组。所以该语句看起来像这个char* profession
,其次,你必须使用一个名为strcmp(char* a, char* b)
的方法,它接受两个char指针。如果它们相等,则返回0。我将包括答案,但我认为有更好的方法来编写此代码。
int main() {
char* profession;
char* compare = "QA";
printf("What is your profession?\n");
scanf(" %s", profession);
if(strcmp(profession, compare) == 0) {
printf("Go and Test\n");
} else {
printf("Do whatever you want");
}
return 0;
}