首页 > 其他 > 详细

strcmp函数的两种实现

时间:2015-05-14 13:37:02      阅读:201      评论:0      收藏:0      [点我收藏+]

strcmp函数的两种实现,gcc测试通过。

 

一种实现:

C代码  技术分享
  1. #include<stdio.h>  
  2.   
  3. int strcmp(const char *str1,const char *str2)  
  4. {  
  5.     /* 注释以下的五行(while循环)可以简写为: 
  6.      * for(;(*str1==*str2)&&*str1!=‘\0‘;str1++,str2++); 
  7.      *  */  
  8.     while((*str1==*str2)&&*str1!=‘\0‘)  
  9.     {  
  10.         str1++;  
  11.         str2++;  
  12.     }  
  13.   
  14.     if(*str1==‘\0‘&&*str2==‘\0‘) return 1;  
  15.     else return -1;  
  16. }  
  17.   
  18. int main()  
  19. {  
  20.     char *st1="abdefg";  
  21.     char *st2="abcdefg";  
  22.     printf("%d\n",strcmp(st1,st2));  
  23.   
  24.     char *st3="12345";  
  25.     char *st4="12345";  
  26.     printf("%d\n",strcmp(st3,st4));  
  27.   
  28.     return 0;  
  29. }  
 

另一种实现:

C代码  技术分享
  1. #include<stdio.h>  
  2.   
  3. int strcmp(const char *str1,const char *str2)  
  4. {  
  5.     while(str1!=NULL&&str2!=NULL)  
  6.     {  
  7.         while(*str1++==*str2++)  
  8.         {  
  9.             if(*str1==‘\0‘&&*str2==‘\0‘) return 1;  
  10.         }  
  11.           
  12.         return -1; //不等的情况  
  13.     }  
  14.   
  15.     return -2; //有指针为空的情况  
  16. }  
  17.   
  18. int main()  
  19. {  
  20.     char *st1="abdefg";  
  21.     char *st2="abcdefg";  
  22.     printf("%d\n",strcmp(st1,st2));  
  23.   
  24.     char *st3="12345";  
  25.     char *st4="12345";  
  26.     printf("%d\n",strcmp(st3,st4));  
  27.   
  28.     char *st5="xyz",*st6=NULL;  
  29.     printf("%d\n",strcmp(st5,st6));  
  30.   
  31.     return 0;  
  32. }  

strcmp函数的两种实现

原文:http://www.cnblogs.com/zqz365001/p/4502996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!