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 != '