这个就跟上面那个strcat一样了。直接给我我的代码
#include<stdio.h>
#include<assert.h>
char *my_strstr(const char *str1,const char *str2)
{
assert(str1);
assert(str2);
char *p1 = NULL;
char *p2 = NULL;
char *p = str1;//对str1做标记,为了方便输出
while (*p)
{
p1 = p;
p2 = str2;
while ((*p1 == *p2)&&(*p1!='\0'))//p1指向'\0'表示p1结束了,这里包含一种情况
//是p2有和p1相同的字符但是并不是它的子串
{
p1++;
p2++;
if (*p2 == '\0')
{
return p;
}
}
p++;
}
return NULL;
}
int main()
{
char str1[20] = "helloworldddd";
char str2[10] = "world";
char *ret = my_strstr(str1, str2);
printf("%s\n",ret);
system("pause");
return 0;
}
这里同样用到了const,但是不同的是这个函数只是对str1,str2进行判断,并没有修改。所以两个字符串都要用const保护起来。
转载于:https://blog.51cto.com/10797037/1714862