求助 帮看下这个字符串比较
大家给我看这是什么意思,我看了好久没有看懂.int strcmp(char*s1,char*s2){
int i;
for(i=0;*(s1+1)!=‘\0’&&*(s2+2)!=
‘\0’&&(s1+i))==*(s2+i);i++);
return*(s1+i)-*(s2+i)
}
----------------解决方案--------------------------------------------------------
急求啊 那个大哥帮一下
给下指点
----------------解决方案--------------------------------------------------------
就是比较两个字符字符的大小啊
----------------解决方案--------------------------------------------------------
&&(s1+i))==*(s2+i)
这里应该是
&&*(s1+i))!=*(s2+i)
吧..
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]闪闪4521[/un] 在 2008-4-11 20:56 的发言:[/bo]
&&(s1+i))==*(s2+i)
这里应该是
&&*(s1+i))!=*(s2+i)
吧..
&&(s1+i))==*(s2+i)
这里应该是
&&*(s1+i))!=*(s2+i)
吧..
正解
----------------解决方案--------------------------------------------------------
版主
对不起大家,我代码写错了,源代码是这样的.应是1、字符串比较
2、 参数s1:串1;s2;串2
3:返回0;若s1=s2;正整数: s1>s2;负整数: s1<s2
int strcmp(char*s1,char*s2){
int i;
for(i=0;*(s1+1)!=‘\0’&&*(s2+2)!=
‘\0’&&*(s1+i))==*(s2+i);i++);
return*(s1+i)-*(s2+i)
}
这就想知道,for循环里的代码怎么解释
----------------解决方案--------------------------------------------------------
字符串以\0为结尾
----------------解决方案--------------------------------------------------------
for(i=0;*(s1+i)!=‘\0’&&*(s2+i)!=‘\0’&&*(s1+i))==*(s2+i);i++);
//未到串尾,并且两串中未遇到同一位置不相同字符,循环继续;直到遇到某串的串尾,或遇到两串中某相同位置但两字符不同,退出;
return*(s1+i)-*(s2+i)j;
// 返回,当是遇到两串的串尾退出,返回0,表示两串相等;当是遇到两串同一位置但两字符不同退出;返回这两个不同字符的差值;
[[it] 本帖最后由 now 于 2008-4-11 22:51 编辑 [/it]]
----------------解决方案--------------------------------------------------------