//自定義一個字符串字串查找標准庫函數strstr()
#include<stdio.h>
#include<string.h>
char* myStrstr(char *str1,char *str2);
int main()
{
char *str1 = "hello worl world ld";
char *str2 = " world ";
puts(myStrstr(str1,str2));
return 0;
}
char *myStrstr(char *str1,char *str2)
{
static int count=0;
const char *p = str2;
char *pt;
while(*(str2++))
{
while(*(str1++))
{
//如果str2和str1第一個字符一樣,接著第二個字符的比較,count累加
if(*(str2-1)==*(str1-1))
{
count++;
break;
}
//如果str2和str1第一個字符不一樣,接著對str1進行遍歷,直到結尾
else if(*(str2-1)!=*(str1-1) && count<strlen(p))
{
continue;
}
//如果str2和str1前幾個字符一樣,再進行比較時不一樣,str2從頭開始
else
{
str2 = str2 - count;
break;
}
}
if(*str2=='\0' && count==strlen(p))
pt = str2-count;//找到字串,將指針移到str2首地址並返回
else
pt = NULL;//沒有找到字串,返回空值NULL
}
return pt;
}