当前位置: 代码迷 >> C语言 >> 二个字符串比较函数
  详细解决方案

二个字符串比较函数

热度:214   发布时间:2006-10-15 19:39:31.0
//如果s2[i]等于'0',执行return 0的语句,否则执行return -1;,或许我写得不详细
我知道是否执行return 0 ;return -1; 但是我不清楚为什么s2[i]等于'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: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'为空(并不空字符)
如果有不对,请说说


----------------解决方案--------------------------------------------------------
以下是引用明溪在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编辑过]


----------------解决方案--------------------------------------------------------
以下是引用C语言学习者在2006-10-15 20:53:47的发言:

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

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


----------------解决方案--------------------------------------------------------
  相关解决方案