5 回答

TA貢獻1834條經(jīng)驗 獲得超8個贊
這樣吧,我簡單給你說一下你應(yīng)該就能懂了
"computer">"compare"中computer的第一個字母(c)和compare中的第一個字母(c)比較,如果對應(yīng)的ASCII相同的話就進行第二個字母的比較,這樣依次下去知道比較到不同的或是比較完為止。
而“dbase” “C Language”中第一個字母就不相同了,d對應(yīng)的ASCII為100,而C對應(yīng)的ASCII為67,然后就直接停止比較了,所以結(jié)果為“dbase”>“C Language”,現(xiàn)在知道了吧

TA貢獻1820條經(jīng)驗 獲得超9個贊
strcmp的函數(shù)代碼實現(xiàn)模擬為如下:
#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條經(jīng)驗 獲得超3個贊
1:首先,比較字符c,相同,在比較o,還相同...比較u與a,不同!u的ASC碼比a大,立即返回,返回一個正數(shù),后面的就沒有必要再比較了
2:道理相同,d的ASC比C大,所以立即返回
- 5 回答
- 0 關(guān)注
- 829 瀏覽
添加回答
舉報