strcmp函数的实现
- #include <stdio.h>
- int mystrcmp(char*dest,char *src)
- {
- char *d=dest;
- char *s=src;
- int res=0;
- while(*d!='\0'&& *s!='\0')
- {
- if(*d>*s)
- {
- res=1;
- break;
- }
- else if(*d<*s)
- {
- res=-1;
- break;
- }
- d++;
- s++;
- }
- if(*d=='\0'&&*s=='\0')
- res=0;
- else if(*d!='\0'&&*s=='\0')
- res=1;
- else if(*d=='\0'&&*s!='\0')
- res=-1;
- return res;
- }
- int main(void)
- {
- char *p1="hellow";
- char *p2="hellowl";
- int res;
- res= strcmp(p1,p2);
- if(res==0)
- printf("equal\n");
- else if(res>0)
- printf("p1大于p2\n");
- else
- printf("p1小于p2\n");
- return 0;
- }
- //可以更简洁些
- int 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 );
- }