当前位置: 代码迷 >> C语言 >> 求助 帮看下这个字符串比较
  详细解决方案

求助 帮看下这个字符串比较

热度:117   发布时间:2008-04-11 20:19:02.0
求助 帮看下这个字符串比较
大家给我看这是什么意思,我看了好久没有看懂.
  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)
  }
搜索更多相关的解决方案: 字符  int  char  strcmp  

----------------解决方案--------------------------------------------------------
急求啊  那个大哥帮一下
给下指点
----------------解决方案--------------------------------------------------------
就是比较两个字符字符的大小啊
----------------解决方案--------------------------------------------------------
&&(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)
吧..

正解
----------------解决方案--------------------------------------------------------
版主
对不起大家,我代码写错了,源代码是这样的.应是
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]]
----------------解决方案--------------------------------------------------------
  相关解决方案