不多bb,直接上代码!!!
有错的话,希望评论区暴力指出!!
真心一起提高ヾ(≧▽≦*)o
char* my_strstr(const char* a, const char* b)
{
assert(a && b);//经典断言,为了安全!!!
//因为要返回找到的首地址,所以先记录
const char* cp = a;
while (*cp)//以a的每一个字符为开始来判断
{
const char*s1 = cp;
const char*s2 = b;
//先来个特殊情况,最后再看会更好!!!
//如果你找空,那就整个字符串都给你吧。
if (*b == '\0')
return (char*)a;
//找
while (*s1 == *s2 && *s1 && *s2 )//找到相等的就s2++去判断下一位
{
s1++;
s2++;
}
//断
if (*s2 == '\0')//成功判断到s2的末尾,那么成功地找到了!!!!
return cp;
cp++;//没成功就下一个字符吧。。。
}
return NULL;//最后没找到就返回NULL
}