| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1323 人关注过本帖
标题:二个字符串比较函数
只看楼主 加入收藏
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

有点糊涂


谁有强殖装甲第二部,可以Q我460054868
2006-10-15 21:32
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
收藏
得分:0 

讲解起来是有点长,这个代码是比较精练的了
楼主应该自己编一次(先别看准确的代码),虽然代码可能会比较长,但是能理解了逻辑流程,
这样以后能容易理解一些比较精练的代码

2006-10-15 21:51
菜鸟笨鸟
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-9-2
收藏
得分:0 
\0的阿斯可码值就是0

偶是大菜鸟~!
2006-10-15 22:31
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
收藏
得分:0 

呵呵,真有意思。
是这样。循环体结束的条件是字符串s1结束,就是s1[i]==0的时候
你再想想程序能够执行到循环体外就是说明在循环体内至少在0<=i<=strlen(s1)为止是和s2相等的,对吧
然后
if(s2[i]==0) // 这里检查是否字符串s2也结束了,如果结束了就说明,s1和s2长度相等(因为对于相同的i,s1和s2都结束了。)根据上面的条件
//所以一定相等
return 0;
else //这个就表明s2的长度大于s1,长度不一样的字符串肯定是不一样了。
return -1;


马马乎乎
2006-10-16 19:00
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用我不是郭靖在2006-10-15 21:13:55的发言:

'\0'是字符,它的ASCII码为0.

应该是'\0'是字符结束符,它的ASCII码为0.我承认我错误


谁有强殖装甲第二部,可以Q我460054868
2006-10-16 19:47
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:0 
int strcmp(char s1[ ] , char s[ ])
{
int i=0;{
while(s1[i]>0){ //这里为什么是s1[i]>0结束循环,不懂
//s1是否结束, 这个方法不太好, 但是C中判断字符串是否结束并没有太好的方法。
if(s1[i]>s2[i])
return 1;
if(s1[i]<s2[i])
return -1;
i++;}
if(s2[i]==0) //这里为什么s2[i]==0时就相等了呢?
// s1已经结束, s2也结束, 因此两个串长度相等,并且内容也相同
return 0;
else
return -1; //这里又为什么呢?
//s2没有到尾部,也就是比s1要长,返回-1,表示s2>s1
}

2006-10-17 11:37
快速回复:二个字符串比较函数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014672 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved