实现strstr :发现字符串
程序:
const char* Strstr(const char* str1, const char* str2)
{
if (str1== NULL || str2 == NULL)//合法性校验
{
return NULL;
}
if (*str2 == '\0')
{
return NULL;
}
const char* black_ptr = str1;
while (*black_ptr != '\0')
{
const char* red_ptr = black_ptr;
const char* sub_ptr = str2;
while ((*red_ptr != '\0')&&(*sub_ptr != '\0' )&& (*red_ptr == *sub_ptr))
{
++red_ptr;
++sub_ptr;
}
if (*sub_ptr == '\0')
{//找到了字符串
return black_ptr;
}
else// *red_ptr == '\0'或 *red_ptr != *sub_ptr这两种情况
{
++black_ptr;
}
}
return NULL;
}
int main()
{
const char str1[12] = "hello world";
const char str2[] = "world";
const char* ret=Strstr(str1, str2);
if (ret == NULL)
{
printf("没有找到\n");
}
else
{
printf("找到了\n");
}
return 0;
}