模拟实现 strstr 函数:
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strstr(const char* p1, const char* p2)
{
assert(p1);
assert(p2);
char* s1 = p1;
char* s2 = p2;
char* cur = p1;
if (*p2 == '\0')
{
return p1;
}
while (*cur)
{
s1 = cur;
s2 = p2;
while ((*s1 != '\0') && (*s2 != '\0') && (*s1 == *s2))
{
s1++;
s2++;
}
if (*s2 == '\0')
{
return cur; // 找到子串
}
cur++;
}
return NULL; // 找不到
}
int main()
{
char *str1 = "abcddfrg";
char *str2 = "ddfr";
char* ret = my_strstr(str1, str2);
if (ret == NULL)
{
printf("找不到。\n");
}
else
{
printf("%s\n", ret);
}
return 0;
}