strcmp函数的实现
 

  1. #include <stdio.h>  
  2. int mystrcmp(char*dest,char *src)  
  3. {  
  4.     char *d=dest;  
  5.     char *s=src;  
  6.     int res=0;  
  7.     while(*d!='\0'&& *s!='\0')  
  8.     {  
  9.         if(*d>*s)  
  10.         {  
  11.             res=1;  
  12.             break;  
  13.         }  
  14.         else if(*d<*s)  
  15.         {  
  16.             res=-1;  
  17.             break;  
  18.         }     
  19.         d++;  
  20.         s++;  
  21.     }  
  22.     if(*d=='\0'&&*s=='\0')  
  23.          res=0;  
  24.     else if(*d!='\0'&&*s=='\0')  
  25.         res=1;  
  26.     else if(*d=='\0'&&*s!='\0')  
  27.         res=-1;  
  28.  
  29.     return res;  
  30. }  
  31. int main(void)  
  32. {  
  33.     char *p1="hellow";  
  34.     char *p2="hellowl";  
  35.     int res;  
  36.     res= strcmp(p1,p2);  
  37.     if(res==0)  
  38.         printf("equal\n");  
  39.     else if(res>0)  
  40.         printf("p1大于p2\n");  
  41.     else 
  42.         printf("p1小于p2\n");  
  43.     return 0;  
  44. }  
  45. //可以更简洁些  
  46. int strcmp ( const char* src, const char* dst )  
  47. {  
  48.     int ret = 0 ;  
  49.     while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)  
  50.         ++src, ++dst;  
  51.     if ( ret < 0 )  
  52.         ret = -1 ;  
  53.     else if ( ret > 0 )  
  54.         ret = 1 ;  
  55.     return( ret );