检查两个字符串是否匹配

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

最佳答案

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

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

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

关于检查两个字符串是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53855633/

相关文章:

c++ - 如何打开 icc/icpc 警告?

c++ - 分配内存和保留内存有什么区别?

c - STM32H743 nucleo 板,在轮询模式下同时使用 3 个 ADC(一次 1 个 ADC);不起作用

c - C程序中单独线程的优点

string - groovy eval string 列出包含字符串的列表

c - c中的指针表达式有什么问题?

php - 多字节安全计数字符串中的不同字符

javascript - JavaScript 中的 Return 语句未返回正确的值

android 如何在 android Webview 中获取点击字符串?

javascript - 如何将字符串值映射到 HTML id