#include<stdio.h>
#include<assert.h>

char* my_strstr(const char* p1,const char* p2)
{
	assert(p1 && p2);//检查p1和p2是否为空指针
  //创建s1,s2来在p1,p2中进行移动,创建指针tmp来保存开始移动时的s1的位置
	char* s1=NULL;
	char* s2=NULL;
	char* tmp=(char*)p1;
  //对p1字符串进行判断是否为空字符
	if (!*p1)
	{
		return (char*)p1;
	}
  //进行查找循环
	while (*tmp)
	{
		s1 = (char*)tmp;
		s2 = (char*)p2;
    //开始查找循环
		while (*s1&&*s2&&(*s1==*s2))
		{
			s1++;
			s2++;
		}
    //判断查找循环停止的原因
		if (!*s2)
		{
			return tmp;
		}
		tmp++;
	}
	return NULL;
}

int main(void)
{
	const char* p1 = {"abbcdefg"};
	const char* p2 = { "bcde" };
	char* k = my_strstr(p1, p2);
  //对my_strtsr函数中所传回的值进行判断
	if (k == NULL)
	{
		printf("不存在\n");
	}
	else
	printf("%s\n", k);
	return 0;
}