Edit:这是重复的,我已将其标记为重复。参见[问题]为什么 C 语言中“a”!=“a”?
所以我试图根据结构中的字段打印出特定的消息。该字段包含字符串“1”。
每当我跑步时printf("%s", record.fields[2]);
输出是1
;我没有任何格式警告。
但是,当我根据相应的字符串(在本例中为“1”)检查该字段时,检查失败:
if (record.fields[2] == "1") {
printf("The field is 1!");
}
你需要使用strncmp比较字符串:
if (strncmp(record.fields[2], "1", 1) == 0) ...
您需要与零进行比较,因为strcmp
当两个字符串相同时返回零。
但是,看起来您不是在比较字符串:而是在字符串中查找特定字符。在这种情况下,您需要使用字符常量而不是字符串文字(带单引号):
if (record.fields[2] == '1') ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)