具有正值的 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”,因此为正结果。
我从 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”,因此为正结果。