检查两个字符串是否匹配

时间:2018-12-19 16:43:02

标签: c string

我正在尝试检查用户输入是否与程序中的变量匹配。

#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。为什么?

2 个答案:

答案 0 :(得分:1)

if(strcmp(input,subject1) == 0)

当您输入数学运算符为true时为true,如果参数匹配则strcmp()返回0。所以你想要的是

if(strcmp(input,subject1) != 0)

答案 1 :(得分:0)

两个if条件在这里都成立。因此,当第一个“ if”条件得到满足并执行时,它不会检查“ else if”条件。仅在所有先前的“ if”条件为假时,才检查“ else if”条件并执行。

希望这会有所帮助。