★创建一个函数,实现库函数strstr的功能

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(char *src,char *dst)
{
assert(dst);
assert(src);
char *p = src;
char *q = dst;
while ((*dst)&&(*src))
{
if (*src == *dst)        //两指针内容相等时,指针向后移动不断匹配
{
src++;
dst++;
}
else
{
src = ++p;   //指针内容不等时,子串指针跳至首地址,原串返回到此次匹配开始的下一位置
dst = q;
p = src;
}
}
if (*dst == '\0')    //子串为'\0'时,说明匹配完成,返回原串与子串相同的首地址处
{
return p;
}
else
{
return NULL;    //没有匹配项,返回空
}
}
int main()
{
char arr1[] = "abbaac";
char arr2[] = "abba";
char *ret = my_strstr(arr1, arr2);
printf("%s\n",ret);
system("pause");
return 0;
}

wKiom1Y_CRnhzJG7AAAWYbK1_UU058.png