庫函式strlen原始碼重現及注意問題

2022-04-10 11:45:30 字數 383 閱讀 9547

首先直接上原始碼:

size_t strlen (const char * str)

可以看到strlen是利用乙個新的char*指標,一直向後遍歷,找到字串結尾的\0,的下乙個元素。然後計算距離。

但是這裡注意一點 size_t 其實是 unsigned int

型別的。所以比較兩個字串長度大小的時候不能使用 strlen(a) - strlen(b) 。因為兩個無符號的整型相減是得不到乙個負數的,所以不管怎麼樣得到的結果都是乙個整數。也就是strlen(a)永遠大於strlen(b)。

可以使用 strlen(a) > strlen(b) 這個表示式判斷兩個字串的大小,不能使用 strlen(a) - strlen(b) > 0

部分庫函式原始碼

部分庫函式原始碼 char strcpy char strdes,const char strsrc return s t char strcat char strdes,const char strsrc 注意 1.不能向形參傳遞指向字串常量的指標 本題中dst和src都是指向串常量的指標,字串常...

仰視原始碼,實現strlen

最近對於c 原始碼特別感興趣,讀原始碼,然後根據原始碼實現一遍,對我幫助蠻大的。下面給出我們天天用的strlen的實現 size t strlen1 const char str size t strlen2 const char str 雖然,實現很簡單,但是其中體現的是一種極致。size t是無...

仿JQuery原始碼封裝的庫函式

最近通過研究jq,有一種想要自己封裝乙個庫函式的衝動,因此,自己diy了乙個庫函式。api說明 類似於jquery中的 getid id 通過id獲取元素 getclassname classname 通過classname獲取元素集合 css param1 params2 可以設定或者獲取css樣...