strstr功能:在s1中查找整个s2第一次出现的起始位置,并返回一个指向该位置的指针,如果s2没有完整的出现在s1中,则返回NULL。

#include <stdio.h>
#include <assert.h>
char *my_strstr(char const *pdest, char const *psrc)
{
	const char *pstr1 = pdest;
	const char *pstr2 = psrc;
	const char *ptr = NULL;
	assert(pdest);//断言字符串地址非零
	assert(psrc);
	if (*pstr2 == '\0')
	{
		return (char *)pstr1;
	}
	while (*pstr1 != '\0')
	{
		ptr = pstr1;
		pstr2 = psrc;
		while (*ptr != '\0' && *pstr2 != '\0'
			&& *ptr == *pstr2)
		{
			ptr++;
			pstr2++;
		}
		if (*pstr2 == '\0')
		{
			return (char *)pstr1;//将目的地址返回,以便可以链式访问
		}
		pstr1++;
	}
	return NULL;
}
int main()
{
	char *p1 = "abbbcdef";
	char *p2 = "bcd";
		if (my_strstr(p1,p2) != NULL)
			printf("%s\n", p1);	
		system("pause");
	return 0;
}