strcmp函式的實現

2021-10-23 23:05:52 字數 578 閱讀 2746

實現思路:從兩個字串第乙個字元開始相減,若不相等即意味著已經比出了大小,!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 時返回乙個正數就好,具體這個數字是幾,是無...