亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

[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 關注
  • 830 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號