| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1323 人关注过本帖
标题:二个字符串比较函数
只看楼主 加入收藏
明溪
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-14
收藏
得分:0 
//如果s2[i]等于'0',执行return 0的语句,否则执行return -1;,或许我写得不详细
我知道是否执行return 0 ;return -1; 但是我不清楚为什么s2[i]等于'0'就是相等呢或者不相等
谢谢
2006-10-15 19:39
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

你那个只是自定义函数,还要主函数。


谁有强殖装甲第二部,可以Q我460054868
2006-10-15 19:43
明溪
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-14
收藏
得分:0 

能不能讲得细点

2006-10-15 19:45
明溪
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-14
收藏
得分:0 

我知道呀,但你能不能给我讲讲这题是怎么比较的呀,
比如,

2006-10-15 19:47
明溪
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-14
收藏
得分:0 

大哥你让我好沮丧,

2006-10-15 19:56
天少云
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-10-14
收藏
得分:0 
麻烦楼主把整个程序贴出来,你这样,大家是不好说明的

2006-10-15 20:01
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用明溪在2006-10-15 18:37:31的发言:

int strcmp(char s1[ ] , char s[ ])
{
int i=0;{ //这多了个{
while(s1[i]>0){ //这里为什么是s1[i]>0结束循环,不懂
if(s1[i]>s2[i])
return 1;
if(s1[i]<s2[i])
return -1;
i++;}
if(s2[i]==0) //这里为什么s2[i]==0时就相等了呢?
return 0;
else
return -1; //这里又为什么呢?
}
这个程序我不明白,请各位讲一下好吗??? 感激不尽!!!

这个程序是对的,while(s1[i]>0)等价于while(s[i]!=0)也就是 while(s[i]!='\0')

因为s[i]是字符,它的ASCII码总是为正(除了字符串结束标志'\0')

if(s2[i]==0) 是判断字符串s2是否结束的.


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

这个程序是对的,while(s1[i]>0)等价于while(s[i]!=0)也就是 while(s[i]!='\0')

因为s[i]是字符,它的ASCII码总是为正(除了字符串结束标志'\0')

if(s2[i]==0) 是判断字符串s2是否结束的.

不是这样
0!='\0'
0表示为数字,'\0'为空(并不空字符)
如果有不对,请说说


谁有强殖装甲第二部,可以Q我460054868
2006-10-15 20:53
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
收藏
得分:0 
以下是引用明溪在2006-10-15 18:37:31的发言:

int strcmp(char s1[ ] , char s[ ])
{
int i=0;{
while(s1[i]>0){ //这里为什么是s1[i]>0结束循环,不懂
if(s1[i]>s2[i])
return 1;
if(s1[i]<s2[i])
return -1;
i++;}
if(s2[i]==0) //这里为什么s2[i]==0时就相等了呢?
return 0;
else
return -1; //这里又为什么呢?
}
这个程序我不明白,请各位讲一下好吗??? 感激不尽!!!

字符串比较需要里面一个个字符进行比较
if(s2[i]==0)
return 0;
这句有错误,应该判断
if(s2[i]=='\0')或 if(s1[i]=='\0')

[此贴子已经被作者于2006-10-15 21:09:00编辑过]

2006-10-15 21:08
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用C语言学习者在2006-10-15 20:53:47的发言:

不是这样
0!='\0'
0表示为数字,'\0'为空(并不空字符)
如果有不对,请说说

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


2006-10-15 21:13
快速回复:二个字符串比较函数
数据加载中...
 
   



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

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