【发布时间】:2015-02-04 22:30:21
【问题描述】:
我的代码量很少:
int test = strcmp("Websecurity", "easily");
printf("%d\n", test);
结果是-1。为什么?显然'W'大于'e'?
【问题讨论】:
-
是什么让您认为
W大于e?如有疑问,您可以尝试打印相关字符的数值。 -
查看你的库是否支持 strcmpi() 或 stricmp()。
-
我不明白为什么误解需要积极的反对。如果这个问题是在 4 年前提出的,它会得到 100 票。
-
很明显,您对
strcmp()的工作原理有误解。除非您将代码集标识为 EBCDIC(其中a到z被编码为 0x81..0xA9,有间隙,而A到Z被编码为 0xC1..0xE9),您的假设是错误的。 -
@BrettHale 一方面,这本身并不是一个坏问题。另一方面,再次阅读
strcmp的文档就足够了。