Chinaunix首页 | 论坛 | 博客
  • 博客访问: 846505
  • 博文数量: 156
  • 博客积分: 6553
  • 博客等级: 准将
  • 技术积分: 3965
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 18:36
文章存档

2012年(3)

2011年(43)

2010年(110)

分类: C/C++

2010-11-23 09:24:52

int __cdecl strcmp(const char *src,const char *dst)     
{     
    int   ret=0;     
   
    while(!(ret=*(unsigned char *)src-*(unsigned char *)dst) && *dst)     
               ++src,++dst;     
    
    if(ret<0)     
         ret=-1;     
    else if(ret>0)     
         ret=1;     

    return ret;     
}

函数原型:int strcmp(const char *dest, const char *source) ;
返回值:返回整数值,如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。字符大小是按照字符的字典序列进行排列的。

参数说明:都是以''\0''为结束符的字符串

实现;
int strcmp(const char *dest, const char *source)  
{  
   assert((NULL != dest) && (NULL != source));  
   while ((*dest == *source)&&(*dest != NULL))  
          {  
               dest ++;  
               source ++;  
           }  
   return *dest - *source;  
   /*如果dest > source,则返回值大于0,如果dest = source,则返回值等于0,如果dest < source ,则返回值小于0。*/
}


阅读(2794) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-11-23 15:45:50

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com