我读了strcmp的描述,它说"测试字符串是否相等。如果string1小于string2则返回负数,如果两个字符串相等则返回0,返回正数,则string1大于string2"来自http://www.cprogramming.com/fod/strcmp.html。但是,我遇到了一个程序,它给了我正数而不是负数。谁能解释为什么它是正面而不是负面输出?
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;
}
答案 0 :(得分:3)
strcmp()
比较字符,而不是数值。 &#34; 4&#34;大于&#34; 345&#34;按字典顺序,因此是积极的结果。