zoukankan      html  css  js  c++  java
  • strcmp函数的两种实现

    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!='';str1++,str2++); 
    7.      *  */  
    8.     while((*str1==*str2)&&*str1!='')  
    9.     {  
    10.         str1++;  
    11.         str2++;  
    12.     }  
    13.   
    14.     if(*str1==''&&*str2=='') return 1;  
    15.     else return -1;  
    16. }  
    17.   
    18. int main()  
    19. {  
    20.     char *st1="abdefg";  
    21.     char *st2="abcdefg";  
    22.     printf("%d ",strcmp(st1,st2));  
    23.   
    24.     char *st3="12345";  
    25.     char *st4="12345";  
    26.     printf("%d ",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==''&&*str2=='') 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 ",strcmp(st1,st2));  
    23.   
    24.     char *st3="12345";  
    25.     char *st4="12345";  
    26.     printf("%d ",strcmp(st3,st4));  
    27.   
    28.     char *st5="xyz",*st6=NULL;  
    29.     printf("%d ",strcmp(st5,st6));  
    30.   
    31.     return 0;  
    32. }  
  • 相关阅读:
    Java并发之Thread类的使用
    剑指Offer
    总结下2017之前的几年
    解决一个特定的负载均衡下定时任务执行多次的问题
    《MYSQL》----字符串的复杂函数,检索的七-天-排-重
    科学计数法的转换
    小伙伴自言自语发给我的聊天记录,一句都看不懂
    记录下一个让我调了一天的失误
    记录一个从没见过的bug
    吐槽下
  • 原文地址:https://www.cnblogs.com/zqz365001/p/4502996.html
Copyright © 2011-2022 走看看