【发布时间】:2017-07-08 19:42:55
【问题描述】:
我刚开始学习 c,我想尝试 strcmp 函数,但如果我运行它,它总是给我结果“1”。我输入什么字符串都没有关系。由于第一个字符串比第二个字符串短,所以我希望结果是“-1”。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char array1[]="na";
char array2[]="kskkjnkjnknjd";
int i;
i= strcmp(array1,array2);
printf(" %d", i);
return 0;
}
我也已经尝试摆脱 i 变量,只写“printf(” %d", strcmp(array1, array2)); 并将 %d 替换为 %u,但也不起作用。我我已经在网上搜索并尝试自己弄清楚,可能只是一个简单的错误,如果有人可以提供帮助,我会很高兴。:)
【问题讨论】:
-
它不只是比较长度。它进行逐个字符的比较,
k在n之前。 -
如果 s1 指向的字符串大于、等于或分别小于 s2 所指向的字符串。您必须比较结果为
==0、<0或>0。 -
如果你想直接比较字符串长度:
if (strlen(a) < strlen(b)) puts("-1");