为了账号安全,请及时绑定邮箱和手机立即绑定

[C语言] 关于strcmp函数的用法?

[C语言] 关于strcmp函数的用法?

C
至尊宝的传说 2019-01-31 11:07:25
①"computer">"compare" ②“dbase”>“C Language”这两个字符串,电脑是怎样比较的?请各位一步一步的分析。万分感谢!
查看完整描述

5 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

这样吧,我简单给你说一下你应该就能懂了
"computer">"compare"中computer的第一个字母(c)和compare中的第一个字母(c)比较,如果对应的ASCII相同的话就进行第二个字母的比较,这样依次下去知道比较到不同的或是比较完为止。
而“dbase” “C Language”中第一个字母就不相同了,d对应的ASCII为100,而C对应的ASCII为67,然后就直接停止比较了,所以结果为“dbase”>“C Language”,现在知道了吧

查看完整回答
反对 回复 2019-03-22
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

strcmp的函数代码实现模拟为如下:

#include <stdio.h>

int strcmp(char *str1,char*str2)
{
char * p1=str1, *p2=str2;
while(*p1 && *p2)
{
if(*p1>*p2)
{
return 1;
}
else if(*p1<*p2)
{
return -1;
}

p1++;
p2++;
}
if(*p1==0 && *p2==0)
{
return 0;
}
else if(*p1==0 && *p2!=0)
{
return -1;
}
else
{
return 1;
}
}

void main()
{
printf("%d\n",strcmp("hello1","hello"));
printf("%d\n",strcmp("computer","compare"));
printf("%d\n",strcmp("dbase","C Language"));
}

请自己看代码,也简单。



查看完整回答
反对 回复 2019-03-22
?
皈依舞

TA贡献1851条经验 获得超3个赞

1:首先,比较字符c,相同,在比较o,还相同...比较u与a,不同!u的ASC码比a大,立即返回,返回一个正数,后面的就没有必要再比较了
2:道理相同,d的ASC比C大,所以立即返回

查看完整回答
反对 回复 2019-03-22
?
MM们

TA贡献1886条经验 获得超2个赞

第一个前面都相等, 比到第5个字符的时候u > a 所以前一个字符串大于后一个

第二个比到第一个字符 d > C 所以前一个比较大

查看完整回答
反对 回复 2019-03-22
  • 5 回答
  • 0 关注
  • 810 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信