写一个 C语言 strstr
时间: 2023-05-21 09:01:28 浏览: 126
关于C语言函数strstr()的分析以及实现
函数的实现。
C语言的 strstr 函数用于在一个字符串中查找另一个字符串的第一次出现位置。它的函数原型如下:
char *strstr(const char *haystack, const char *needle);
其中,haystack 表示要查找的字符串,needle 表示要查找的子字符串。函数返回值是一个指向第一次出现 needle 的位置的指针,如果没有找到,则返回 NULL。
下面是一个简单的 C语言 strstr 函数的实现:
char *my_strstr(const char *haystack, const char *needle)
{
const char *p1, *p2;
if (!*needle) return (char *) haystack;
while (*haystack) {
p1 = haystack;
p2 = needle;
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
if (!*p2) return (char *) haystack;
haystack++;
}
return NULL;
}
这个函数的实现比较简单,它使用两个指针 p1 和 p2 分别指向 haystack 和 needle 的当前位置,然后逐个比较它们所指向的字符,直到找到第一次出现 needle 的位置或者 haystack 中的字符已经全部比较完毕。
阅读全文