標準庫函式實現之strstr

2021-08-01 12:40:21 字數 591 閱讀 6505

昨天去參加乙個面試,發現自己的**水平還是不夠,謝了兩次才寫出來,連基本的標準庫實現,都沒法做好,遂決定對標準庫中的部分函式的實現研習一番。

面試的是 char* strstr( char* s1 , char* s2 )函式,自己寫的就不說了,寫得很爛,不過看了minix**,裡面的實現思路和我一樣,linux的**中,對這個函式有用彙編來進行實現的,暴汗……

看下linux下的實現:

char *strstr(const

char *s1, const

char *s2)

return null;
}
思路:

檢測字串安全性,s2為空果斷拋棄之。

s1逐個遞增,並與s2整串比較記憶體大小,判斷字串是否相等。相等則返回s1,否則s1++,再執行比較。

最後返回空值,代表未找到相符的串

總的來說,這個函式的實現是相當簡單的,昨天卻沒有將它完整答對,雖然思路正確了,但是coding能力不僅在於思路,更在於how to code fast and right。

路漫漫其修遠兮,吾將上下而求索。

庫函式strstr的實現

函式strstr的原型是char strstr char str1,char str2 其功能是在str1中返回指定字串str2的第一次出現的位置。view plaincopy to clipboardprint?01.include 02.include 03.int main void 04.1...

庫函式strstr的實現

沒什麼說的,常規思路 函式原型 const char strstr const char str1,const char str2 方法一 str1 源字串 str2 需要查詢的目的字串 pragma once includeconst char my strstr const char str1,...

實現庫函式strstr和strchr

下面是實現庫函式時用到的標頭檔案 define crt secure no warnings 1 include include include strstr用於判斷字串str2是否是str1的子串。如果是,則該函式返回str1字串從str2第一次出現的位置開始到結尾的字串 否則,返回null。ch...