首页 > 解决方案 > strcmp 返回 10 即使字符串相同

问题描述

由于某种原因,当我比较两个确切的字符串时,它返回一个非零的数字。我不确定它为什么要这样做。

此处显示:

printf("%s %s %d\n",target,temp->variableName,strcmp(temp->variableName, target));

结果:"BB 10" <- 当我将 B 与 B 进行比较时,它返回 10,即使它应该返回 0。

有人可以告诉我它是怎么做到的,我能做些什么来解决这个问题?

标签: cstringstrcmp

解决方案


的返回值strcmp是第一个 delta 的 ASCII 值(这取决于实现,但大多数体面的实现都会以这种方式表现)。

的 ASCII10等于newline。您很可能在其中一个字符串中有回车。


推荐阅读