编辑:这是重复的,我已将其标记为此类。见[问题] Why is "a" != "a" in C?
所以我试图根据结构中的字段打印出特定的消息。该字段包含字符串“1”。
每当我运行printf("%s", record.fields[2]);
时输出为1
;我没有格式警告。
但是,当我针对相应的字符串(在这种情况下为“1”)检查字段时,它未通过检查:
if (record.fields[2] == "1") {
printf("The field is 1!");
}
答案 0 :(得分:2)
您需要使用strncmp
来比较字符串:
if (strncmp(record.fields[2], "1", 1) == 0) ...
您需要比较为零,因为strcmp
在两个字符串相同时返回零。
但是,看起来你不是在比较字符串:相反,你正在寻找字符串中的特定字符。在这种情况下,您需要使用字符常量而不是字符串文字(带单引号):
if (record.fields[2] == '1') ...