开发者社区> 问答> 正文

我收到错误消息“未指定与字符串文字的比较结果(改为使用strncmp)” [重复]

我收到错误消息“未指定与字符串文字的比较结果(改为使用strncmp)” [重复] 我是C语言的新手,所以在代码行中看到此错误时,我发现它很奇怪。你能帮我吗?

显示错误的行是

if (Name == "abc") {
//full code

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char Name[8];
    puts("Enter your name here");
    scanf("%s", Name);
    if (Name == "abc") {
        puts("No, your name is abcd");
    }
    else {
        printf("Yes, your name is %s", Name);
        }
return 0;
}

展开
收起
kun坤 2019-11-29 10:47:47 700 0
1 条回答
写回答
取消 提交回答
  • 该==运算符不适用于比较字符串。在这种情况下,它实际上所做的是将字符串Name的起始地址与字符串文字的起始地址进行比较"abc"。这就是警告的意思。

    如警告所述,解决方案是使用该strcmp功能。

    if (strcmp(Name, "abc") == 0) {
    

    如果两个字符串相同,则此函数返回0;如果左侧操作数为“ greater”,则该函数返回负值;如果右侧操作数为“ greater”,则该函数返回一个正值。 https://stackoverflow.com/questions/59097608/im-getting-the-error-result-of-comparison-against-a-string-literal-is-unspecif

    2019-11-29 10:48:01
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载