【发布时间】:2021-03-18 21:22:12
【问题描述】:
由于某种原因,当我比较两个确切的字符串时,它返回一个非零的数字。我不知道为什么会这样。
此处显示:
printf("%s %s %d\n",target,temp->variableName,strcmp(temp->variableName, target));
结果:"B B 10"
有人能告诉我这是怎么回事吗?我能做些什么来解决这个问题?
【问题讨论】:
-
一些实现只返回发现不匹配的前 2 个字符之间的差异。如果你得到 10,似乎其中一个缓冲区包含
LF(0x0A) -
我建议把格式字符串改成
"[%s] [%s] [%d]\n" -
这里有两个选项。你的
strcmp有一个错误(非常不可能),或者你的代码有问题,你没有显示。所以请edit您的问题并提供minimal reproducible example