2

编辑:这是重复的,我已将其标记为这样。请参阅 [问题]为什么“a”!=“a”在 C 中?

所以我试图根据结构中的字段打印出特定的消息。该字段包含字符串“1”。

每当我运行printf("%s", record.fields[2]); 输出是1;我没有格式警告。

但是,当我根据相应的字符串(在本例中为“1”)检查该字段时,检查失败:

if (record.fields[2] == "1") {
    printf("The field is 1!");
}
4

1 回答 1

2

您需要使用strncmp来比较字符串:

if (strncmp(record.fields[2], "1", 1) == 0) ...

您需要与零进行比较,因为strcmp当两个字符串相同时返回零。

但是,看起来您不是在比较字符串:而是在字符串中查找特定字符。在这种情况下,您需要使用字符常量而不是字符串文字(带单引号):

if (record.fields[2] == '1') ...
于 2013-04-20T02:51:01.587 回答