實現思路:從兩個字串第乙個字元開始相減,若不相等即意味著已經比出了大小,!temp為0,while迴圈停止,返回temp值即可。
若相等,即temp=0,那麼str1和str2都加1,繼續比較後面的字元,直到str1和str2不相等或字串遍歷結束。
注:用*(unsigned char*)str1而不是用*str1。這是因為傳入的引數為有符號數,有符號字元值的範圍是-128 ~ 127,無符號字元值的範圍是0~255,而字串的ascii沒有負值,若不轉化為無符號數這回在減法實現時出現錯誤。
例如 str1的值為1,str2的值為255。
作為無符號數計算時temp = -254,結果為負值,正確
作為有符號數計算時temp = 2,結果為正值,錯誤
int
strcmp
(const
char
* str1,
const
char
* str2)
if(temp <0)
else
if(temp >0)
return0;
}
strcmp函式實現
功能 比較字串s1和s2大小。一般形式 int strcmp 字串1,字串2 說明 當s1s2時,返回 1 即兩個字串自左向右逐個字元相比 按ascii值大小相比較 直到出現不同的字元或遇 0 為止。include using namespace std int strcmp const char ...
strcmp函式的實現
6 實現strcmp函式的功能,要求按照先比字元後比長度的方式。include int stringlength char array return arraylength int stringcmp char array1,char array2 else if array1 i if i str...
strcmp 函式自實現
今天繼續來模擬實現庫函式 strcmp 寫my str cmp 函式之前,先了解一下它的定義 strcmp c c 函式,比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回零 若str1 str2,則返回正數 若str1 str2 時返回乙個正數就好,具體這個數字是幾,是無...