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

①"computer">"compare" 
②“dbase”>“C Language”
这两个字符串,电脑是怎样比较的?请各位一步一步的分析。万分感谢!

至尊宝的传说
浏览 811回答 5
5回答

MMMHUHU

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

慕妹3146593

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"));}请自己看代码,也简单。

皈依舞

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

MM们

第一个前面都相等, 比到第5个字符的时候u > a 所以前一个字符串大于后一个第二个比到第一个字符 d > C 所以前一个比较大
打开App,查看更多内容
随时随地看视频慕课网APP