我給出的strcmp源碼
源碼:
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
posted on 2008-09-04 13:31 so true 閱讀(610) 評論(0) 編輯 收藏 所屬分類: C&C++