为什么当你将字符串而不是变量放在参数上时 strncmp 不起作用。
为什么在这种情况下a = 1:
int a = strncmp("zbcd", "abcd", 3);
在本例中 a = 25:
char *s1 = "zbcd";
char *s2 = "abcd";
int a = strncmp(s1, s2, 3);
两种情况下的行为都是完全有效的。
strncmp
的返回值为:
如果按字典顺序 lhs 出现在 rhs 之前,则为负值。
如果 lhs 和 rhs 比较相等,或者计数为零,则为零。 正值
如果 lhs 按字典顺序出现在 rhs 之后。
不保证正值为 1(或负值 -1)。