Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 指针和整数之间的比较,如何修复它??它甚至不运行_C - Fatal编程技术网

C 指针和整数之间的比较,如何修复它??它甚至不运行

C 指针和整数之间的比较,如何修复它??它甚至不运行,c,C,我有以下代码: char level; printf("Please choose a level!\nEasy\nMedium\nHard\n\n"); scanf("%s", &level); do{ if((level=="easy") || (level=="Easy")) { printf("You have choosen the easy level, so you have 2 powerups per time. If you want

我有以下代码:

char level;

printf("Please choose a level!\nEasy\nMedium\nHard\n\n");
scanf("%s", &level);
do{
    if((level=="easy") || (level=="Easy"))
    {
        printf("You have choosen the easy level, so you have 2 powerups per time. If you want to use them, please type P or p!\n");
        break;
    }
和此警告: 17 15 C:\Users\katerina\Desktop\levels.C[警告]指针和整数之间的比较


我能做什么?

在C中,没有字符串比较运算符
==
。您必须使用以下功能:

if (strncmp("easy", level, 4) == 0) {
}

此外,变量
级别
的定义不正确。它应该是一个
char*
(不要忘记分配内存)或
char[]
两个问题:首先
level
需要是一个字符串,而不是
char
。其次,您需要使用strcmp来比较字符串,而不是
=

您不能使用
==
来比较C中的字符串。使用strcmp

if (strcmp ("easy", level) == 0)
此外,如果您希望代码更安全,请使用Bart提到的
strncmp


您必须注意的另一件事是,声明
level
类似

char level
只为一个字符留出空间。(“简单”不合适)。我想您需要声明一个字符串:

char level [length];

只需将“length”替换为所需字符串的长度。

这是一个相当基本的错误,尤其是来自其他语言时。考虑一个体面的C教程或课程。专业提示:看,选一个。谢谢阿希什!!我非常感激:)@AshishAhujaツ: 请不要乞求增加投票或接受答案——这是不体面的,尤其是因为你的答案与前两个答案基本相同。@PaulR,我不是乞求。我从不这样做,除非我看到一个新用户说它有效。他们不知道接受的过程,因此我只是通知他们。我写道:如果我的答案解决了所有问题,就接受它。注意if。另外,在用户说它有效之前,我甚至从来没有问过它对答案的理解。@PaulR,也请定义一下“乞讨”的措辞。按照我的说法,乞讨就是要求用户无理由地接受答案,不管它是否有效:请接受我的答案,我已经付出了足够的努力。不管它对你有用与否,它对我有用或者类似的东西。这是一个正确的答案,如果用户来表示答案有效,那么请求接受答案并没有错。非常感谢。另外,如果你仔细看,我基本上只是通知用户接受,并说如果答案有效,就接受它。@PaulR,常识是,如果我的答案不起作用,用户就不会接受它,并接受有效的答案。谢谢Paul,我修正了它!!:)