#include<assert.h>
char* my_strstr(char* p1, char* p2)
{
assert(p1 != NULL);
assert(p2 != NULL);//保证指针有效性
char* s1 = p1;
char* s2 = p2;
char* cur = p1;
if (*p2 == '\0')
{
return p1;//一个特殊情况
}
while (*cur)//存档点移到最后的时候退出循环
{
s1 = cur;//每次s1从存档点开始尝试
s2 = p2;
while ((*s1 == *s2) && (*s2 != '\0') && (*s1 != '\0'))
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return cur;//找到子串,返回首元素地址
}
cur++;
}
return NULL;//找不到,返回空指针
}