STRCMP输出正值

strcmp output with positive value

本文关键字:输出 STRCMP      更新时间:2023-10-16

我读了strcmp的描述,它说"测试字符串是否相等。如果string1小于string2,返回一个负数;如果两个字符串相等,返回零;如果string1大于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",因此结果为正。