我知道是否执行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是否结束的.
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编辑过]