具有正值的 strcmp 输出

strcmp output with positive value

我从 http://www.cprogramming.com/fod/strcmp.html 读到了 strcmp 的描述,上面写着 "Tests the strings for equality. Returns a negative number if string1 is less than string2, returns zero if the two strings are equal, and returns a positive number is string1 is greater than string2"。然而,我 运行 进入了一个程序,它给我正数而不是负数。谁能解释为什么它是正而不是负输出?

using namespace std;

int f(int n) {
if (n < 0) {
    return -1;
} else if (n == 0) {
    return 0;
} else {
    return 1;
}
}

int main(int argc, char* argv[]) {
char a[10];
char b[10];
int n;

strcpy(a, "4");
strcpy(b, "345");

n = strcmp(a, b);
cout << f(n) << endl;
}

strcmp() 比较字符,而不是数值。 “4”在字典序上大于“345”,因此为正结果。