| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1127 人关注过本帖
标题:写了一个strcmp函数,但是觉得太大,不好,有没有很简单的程序?
取消只看楼主 加入收藏
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:4 
写了一个strcmp函数,但是觉得太大,不好,有没有很简单的程序?
#include<stdio.h>
#include<string.h>
int process(char  *p1, char *p2)
{
    int i,min,k=0;
    if(strlen(p1)!=strlen(p2))
    {
      if(strlen(p1)<strlen(p2))
      {  k=0;
         min=strlen(p1);
      for(i=0;i<=min-1;i++)
      {
      if(*(p1+i)>*(p2+i)) { return (1); break;}
      else if(*(p1+i)<*(p2+i)) { return(-1); break;}
            else  k++;
      }
    if(k==min) return(-1);
   
      }
      else {
               k=0;
             min=strlen(p2);
          for(i=0;i<=min-1;i++)
            {
              if(*(p1+i)>*(p2+i)) { return (1); break;}
                 else if(*(p1+i)<*(p2+i)) { return(-1); break;}
                      else  k++;
            }
            if(k==min) return(1);
             }
    }
   
    else{
              k=0;
             min=strlen(p2);
          for(i=0;i<=min-1;i++)
            {
              if(*(p1+i)>*(p2+i)) { return (1); break;}
                 else if(*(p1+i)<*(p2+i)) { return(-1); break;}
                      else  k++;
            }
            if(k==min) return(0);
    }
    return 0;
}
void main()
{
 int y;
 char a[100],b[100],*p1,*p2;
 gets(a);
 gets(b);
 p1=a;p2=b;
 y=process(p1,p2);
 printf("%d\n",y);
}
搜索更多相关主题的帖子: include process return 
2011-11-08 17:14
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
回复 2楼 beyondyf
回帖要负责任!
2011-11-08 17:51
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
,,,
2011-11-08 18:57
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
回复 7楼 心灵百合
for(;*str2!='\0',*str2!='\0';str1++,str2++)
第一个分号前边不省略,那么可以是什么?
'\0'理解成是换行的意思吧?但是空格不也是'\0'吗?为什么遇到空格没有结束for循环呢?
2011-11-08 19:04
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用Devil_W在2011-11-8 19:09:40的发言:

int strcmp(register const char *s1, register const char * s2)
{
         while (*s1 == *s2++)
                 if (*s1++ == 0)
                         return (0);
         return (*(const unsigned char *)s1 - *(const unsigned char *)(s2 - 1));
}
给解释一下吧~
2011-11-08 19:19
快速回复:写了一个strcmp函数,但是觉得太大,不好,有没有很简单的程序?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013613 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved