strstr 函数原型实现
时间: 2024-09-05 15:04:36 浏览: 70
`strstr` 函数是 C 语言标准库中的一个字符串处理函数,它的原型在 `string.h` 头文件中声明。这个函数用于在字符串中查找第一次出现的子串,并返回子串首次出现的位置的指针。如果未找到子串,则返回NULL指针。
函数原型如下:
```c
char *strstr(const char *str1, const char *str2);
```
参数说明:
- `str1`:目标字符串,`strstr` 函数会在这个字符串中查找 `str2`。
- `str2`:需要查找的子串。
返回值:
- 返回一个指向第一次出现 `str2` 的子串的指针,如果 `str2` 不是 `str1` 的子串,则返回NULL。
这个函数是大小写敏感的。
下面是一个简单的 `strstr` 函数实现示例:
```c
#include <stdio.h>
#include <string.h>
char *my_strstr(const char *str1, const char *str2) {
if (*str2 == '\0') {
return (char *)str1;
}
const char *p1 = str1;
const char *p2;
while (*p1) {
p2 = str2;
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
if (!*p2) {
return (char *)str1;
}
str1++;
}
return NULL;
}
int main() {
const char *str = "Hello, world!";
const char *to_find = "world";
char *found = my_strstr(str, to_find);
if (found != NULL) {
printf("子串 '%s' 在 '%s' 中首次出现于位置: %ld\n", to_find, str, found - str);
} else {
printf("在 '%s' 中未找到 '%s'\n", str, to_find);
}
return 0;
}
```
在这个实现中,我们手动遍历 `str1` 来查找 `str2`,当找到 `str2` 的第一个字符时,再逐个比较后续的字符,直到发现不匹配的字符或者到达 `str1` 或 `str2` 的结尾。
阅读全文