char* strstr(const char* str1,const char* str2)
*被查找的字符串中是否含有源字符串,返回查找到字符串的首字符的地址
*该函数查找到字符串即返回,例如“abcdeabc”中查找“abc”不会查找到第二次的“abc”
*查找不到将返回NULL
char* my_strstr(const char* p1,const char* p2)
{
assert(p1 && p2);
char* s1 = p1;
char* s2 = p2;
char* cur = p1;
if (*p2 == '\0')
return p1;
while (*cur)
{
s1 = cur;
s2 = p2;
while(*s1 && *s2 &&(*s1 == *s2))
{
s1++;
s2++;
}
if (*s2 == '\0')
return cur;
if (*s1 == '\0')
return NULL;
cur++;
}
return NULL;
}
int main()
{
char* p1 = "abcdef";
char* p2 = "def";
char* ret = strstr(p1, p2);
my_strstr(p1, p2);
if (ret == NULL)
printf("字串不存在");
else
printf("%s", ret);
return 0;
}