{
char *p,*q;
p=s1;
q=s2;
while(*(q++)==*(p++));
if(*q>*p) return s1;
else if(*q<*p) return s2;
else return 0;
}
這樣就可以了。但是返回0時,該數據不是地址,所以這樣表達是有問題的。否則返回數組的地址。但可以改進壹下,相等時返回NULL,就可以解決問題了。
char * strcmp(char s1[],char s2[])
{
char *p,*q;
p=s1;
q=s2;
while(*(q++)==*(p++));
if(*q>*p) return s1;
else if(*q<*p) return s2;
else return NULL;
}
調用方法:
if ! strcmp(s1[],s2[]) then printf("%s",strcmp(s1[],s2[]));
else printf("chars s1=s2!hahaha....");