模拟库函数strstr详细源代码
strstr查找子字符串
char*my_strstr(const char*p1, const char* p2)
{
if (!(char*)p1 )
{
return (char*) p1;
}
char*s1 = (char*)p1;
char*s2 = (char*)p1;
char*cur =(char*) p1;///纪录当前匹配的起始位置
while (*cur)
{
s1 = cur;
s2 = (char*)p2;
while(!(*s1-*s2)&&*s1&&*s2)
{
s1++;
s2++;
}
if (!*s2)
{
return cur;
}
if (!*s1)
{
return NULL;
}
cur++;
}
return NULL;
}
int main()
{
char *p1 = "abcdef";
char *p2 = "bcd";
char *cur=my_strstr(p1, p2);
printf("%s\n", cur);
return 0;
}
欢迎各位小伙伴交流!!! |