我正在尝试检查用户输入是否与程序中的变量匹配。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* subject1 = "math";
char input[10];
int main()
{
printf("Subject: ");
scanf("%s", input);
if(strcmp(input,subject1) == 0)
{
printf("cpi\n");
}
else if(strcmp(input,subject1) == 0)
{
printf("math\n");
}
return 0;
}
如果我输入字符串“math”,我会在输出中得到 cpi
,而不是 math
。为什么?
最佳答案
if(strcmp(input,subject1) == 0)
当您输入数学时为 true,因为如果参数匹配,strcmp() 将返回 0。所以你想要的是
if(strcmp(input,subject1) != 0)
关于检查两个字符串是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53855633/