strcmp 函式自實現

2021-07-11 04:08:31 字數 1151 閱讀 5601

今天繼續來模擬實現庫函式------strcmp()。

寫my_str_cmp()函式之前,先了解一下它的定義:

strcmp

c/c++函式,比較兩個字串

設這兩個字串為str1,str2,

若str1==str2,則返回零;

若str1>str2,則返回正數;

若str1 str2 時返回乙個正數就好,具體這個數字是幾,是無所謂的;str1 < str2 時返回乙個負數就好,具體這個數字是幾,也是無所謂的。在vs的環境裡面,這個值分別是1 和 -1.

所以,像下面這樣的語句,是有問題的:

int ret = strcmp(str1, str2);

if (ret == 1)

printf("arr1 > arr2\n");

else if (ret == -1)

printf("arr1 < arr2\n");

else

printf("arr1 == arr2\n");

現在就來建立整體的框架:

#include int main()

然後開始寫my_strcmp()函式:

int my_strcmp(const char * left,const char * right)		//*left和*right的值不需要修改,加上const修飾	

return *left - *right; //來到這裡,當前字元必定不等,直接返回差

}

寫到這裡,my_strcmp()函式就實現完了,測試一下,發現跟預想的結果一樣。

再來與真正的庫函式比較一下:

int __cdecl strcmp (

const char * src,

const char * dst

)

其實只有一些小的差別了,讀者自己發現吧!

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函式的實現

實現思路 從兩個字串第乙個字元開始相減,若不相等即意味著已經比出了大小,temp為0,while迴圈停止,返回temp值即可。若相等,即temp 0,那麼str1和str2都加1,繼續比較後面的字元,直到str1和str2不相等或字串遍歷結束。注 用 unsigned char str1而不是用 s...