華文網

C|自訂庫函數strstr(子串判斷)

strstr(str1,str2) 函數用於判斷字串str2是否是str1的子串。如果是,則該函數返回str2在str1中首次出現的地址;否則,返回NULL。

自訂相同功能的函數,達到如下效果:

代碼:

使用二重迴圈實現字串匹配。

關鍵在於理解各指標的指向。有四個指標(看下圖),str2始終不動,外迴圈控制str1,內迴圈控制src、sub指標。

1 字串的初始化狀態:

2 執行第一次外迴圈:

3 執行第二次外迴圈:

4 執行第三次外迴圈:

5 執行第四次次處迴圈:

原始程式碼:

#include "stdio.h"

#include "string.h"

char *mystrstr(const char *str1, const char *str2)

{

char *src,*sub;

if(str1 == NULL || str2 == NULL)

{

printf("The string is error! ");

exit(0);

}

while(*str1 != '