源码:
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