模拟实现strstr函数
原理
- 接收两个字符串地址,在第一个字符串中寻找是否出现第二个字符串。
代码
char *my_strstr(const char* str1, const char* str2 )
{
assert(str1 != NULL);
assert(str2 != NULL);
if(*str2 == '\0')
return NULL;
while (*str1)
{
const char *s1 = str1;
const char *s2 = str2;
while (*s1 && *s2 && *s1 == *s2)
{
s1++;
s2++;
}
if (*s2 == '\0')
return (char*)str1;
str1++;
}
return NULL;
}
- 需要注意的问题,源的开始相同但是后面不同,需从目标字符串紧接着的下一个寻找。
- 如特殊请况:在“abbbcdf”中寻找“bbc”。