如果第一个字符串大于第二个字符串,我认为 strcmp 应该返回一个正数。但是这个节目
#include <stdio.h>
#include <string.h>
int main()
{
char A[] = "A";
char Aumlaut[] = "Ä";
printf("%i\n", A[0]);
printf("%i\n", Aumlaut[0]);
printf("%i\n", strcmp(A, Aumlaut));
return 0;
}
打印65
,-61
和-1
.
为什么?有什么我忽略的吗?
我想也许我保存为 UTF-8 的事实会影响事情。你知道,因为Ä
那里由 2 个字符组成。但是保存为 8 位编码并确保字符串的长度都为 1 并没有帮助,最终结果是相同的。
我究竟做错了什么?
在此处使用 32 位 Linux 下的 GCC 4.3,以防万一。