5 回答
TA贡献1834条经验 获得超8个赞
这样吧,我简单给你说一下你应该就能懂了
"computer">"compare"中computer的第一个字母(c)和compare中的第一个字母(c)比较,如果对应的ASCII相同的话就进行第二个字母的比较,这样依次下去知道比较到不同的或是比较完为止。
而“dbase” “C Language”中第一个字母就不相同了,d对应的ASCII为100,而C对应的ASCII为67,然后就直接停止比较了,所以结果为“dbase”>“C Language”,现在知道了吧
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"));
}
请自己看代码,也简单。
TA贡献1851条经验 获得超3个赞
1:首先,比较字符c,相同,在比较o,还相同...比较u与a,不同!u的ASC码比a大,立即返回,返回一个正数,后面的就没有必要再比较了
2:道理相同,d的ASC比C大,所以立即返回
- 5 回答
- 0 关注
- 810 浏览
添加回答
举报