自己實現c語言中的strstr函式,採用字元乙個乙個進行匹配,如果不等,則從下乙個位置進行匹配。
/*strstr 實現*/
char* mystrstr(const
char* dest, const
char* src)
//上面迴圈完畢,有如下3種情況
if (!*tsrc)
if(!*tdest)
//走到這裡,沒有匹配成功,繼續從下一位開始匹配整個子串
tdest++;
}return
null;
上面這函式好理解,但是用了2層迴圈,使用樸素的匹配模式演算法只需要 1層迴圈。下面是改進後的方法。
/* strstr 實現
第二種方法 樸素的模式匹配演算法 ,只用乙個外層迴圈
*/
char* mystrstr1(const
char* dest, const
char* src)
else
//在匹配過程中發現有乙個字元和子串中的不等,馬上回退到 下乙個要匹配的位置
}//迴圈完了後j的值等於strlen(tsrc) 子串中的字元已經在主串中都連續匹配到了
if (j == strlen(tsrc))
return null;
2個函式都能實現一樣的效果。 實現strstr函式
題目 給定兩個兩個字串 str1和str2 str1是否包含str2 若包含則返回字串出現的第乙個位置 錯誤返回 1 示例1 輸入 str1 hello str2 ll 輸出 2 思路 1 判斷兩個字串長度大小 2 判斷兩個字串是否為空 3 前兩個都通過後,如果str1 i str2 j j 否則 ...
strstr 函式實現
函式要求 寫乙個函式模擬strstr 函式,設計中不得使用其他庫函式。函式原型 const char strstr const char str1,const char str2 說明 在字串str1中,尋找字串str2,若找到返回找到的位置,否則返回null。比如 123523456 尋找 234...
庫函式strstr的實現
函式strstr的原型是char strstr char str1,char str2 其功能是在str1中返回指定字串str2的第一次出現的位置。view plaincopy to clipboardprint?01.include 02.include 03.int main void 04.1...