源码:
int strcmp(const char * str1, const char *str2){
do{
if(!str1 || !*str1)return (!str2 || !*str2) ? 0 : -1;
if(!str2 || !*str2)return 1;
}while(*str1++==*str2++);
return *(str1-1)-*(str2-1);
}
测试:
cout<<strcmp(NULL,NULL)<<endl;
cout<<strcmp("abc",NULL)<<endl;
cout<<strcmp(NULL,"abc")<<endl;
cout<<strcmp("abc","abc")<<endl;
cout<<strcmp("abcd","abc")<<endl;
cout<<strcmp("abc","abcd")<<endl;
cout<<strcmp("abc","de")<<endl;
cout<<strcmp("de","abc")<<endl;
cout<<strcmp(" ","\n")<<endl;
结果:
0
1
-1
0
1
-1
-3
3
22
Press any key to continue