我知道是否执行return 0 ;return -1; 但是我不清楚为什么s2[i]等于'0'就是相等呢或者不相等
谢谢
----------------解决方案--------------------------------------------------------
你那个只是自定义函数,还要主函数。
----------------解决方案--------------------------------------------------------
能不能讲得细点
----------------解决方案--------------------------------------------------------
我知道呀,但你能不能给我讲讲这题是怎么比较的呀,
比如,
----------------解决方案--------------------------------------------------------
大哥你让我好沮丧,
----------------解决方案--------------------------------------------------------
麻烦楼主把整个程序贴出来,你这样,大家是不好说明的
----------------解决方案--------------------------------------------------------
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是否结束的.
----------------解决方案--------------------------------------------------------
这个程序是对的,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'为空(并不空字符)
如果有不对,请说说
----------------解决方案--------------------------------------------------------
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编辑过]
----------------解决方案--------------------------------------------------------
不是这样
0!='\0'
0表示为数字,'\0'为空(并不空字符)
如果有不对,请说说
'\0'是字符,它的ASCII码为0.
----------------解决方案--------------------------------------------------------