#include
#include
char *my_strstr(const char *str1,const char *str2)
{
assert(str1);
assert(str2);
char *p = str1; //记录str1的初始位置
char *s1 = p; //保存str1的开始位置
char *s2 = str2; //记录str2的初始位置
while(*p)
{
s = p; //将str1的起始位置由上一次的起始位置向后加1,由下面的p++计算
while(*p && *q && *p == *q) //如果不匹配,以后每次比较时,str2都从首元素开始
{
p++;
q++;
}
if(*q == '\0')
{
return p;
}
p++; //不匹配,str1由上一次的起始位置向后加1
}
return null; //整体遍历完没有找到,返回空
}
int main()
{
char *str1 = "abbbcdef";
char *str2 = "bbcd";
char *ret = my_strstr(str1,str2);
printf("%s\n",ret);
return 0;
}