1.模拟实现strcat--字符串追加

void my_strcat(char* p1, char* p2)
{
	assert(p1 != NULL);
	assert(p2 != NULL);
	//1.找到串1的'\0'
	while (*p1++);
	p1--;
	while (*p1++ = *p2++);
}
int main()
{
	char arr1[20]= "abcdef\0++++++++";
	char arr2[] = "abcd";
	my_strcat(arr1, arr2);
	printf("%s\n", arr1);
}

2.模拟实现strstr--是否包含字串

char* my_strstr(const char* p1, const char* p2)
{
	assert(p1 != NULL);
	assert(p2 != NULL);

	if (!*p2)
		return (char*)p1;

	char* s1=(char*)p1;
	char* s2 = (char*)p2;

	while (*s1++ != *p2);
	s1--;
	char* cur = s1;

	while (*p1++){
		s1 = cur;
		s2 = (char*)p2;
		while (*s1++ == *s2++)
		{
			if (!*s2)
				return cur;
		}
		cur++;
	}
	return NULL;
}
int main()
{
	char* arr1 = "abbbcdef";
	char* arr2 = "bcdef";
	char* ret=my_strstr(arr1, arr2);
	printf("%s\n", ret);
}