strstr实现代码
时间: 2024-06-01 07:05:29 浏览: 77
实现strstr()函数1
strstr()函数是C语言中的字符串处理函数,用于在一个字符串中查找另一个字符串出现的位置。它的函数原型如下:
```c
char* strstr(const char* str1, const char* str2);
```
其中,str1是被查找的字符串,str2是要查找的字符串。函数返回值为指向被查找字符串中第一个匹配上要查找字符串的指针,如果没有匹配,则返回NULL。
strstr()函数的实现代码如下:
```c
char* my_strstr(const char* str1, const char* str2) {
if (str1 == NULL || str2 == NULL) {
return NULL;
}
const char* p1 = str1;
const char* p2 = str2;
const char* p3 = NULL;
while (*p1 != '\0') {
p3 = p1;
while (*p1 != '\0' && *p2 != '\0' && *p1 == *p2) {
p1++;
p2++;
}
if (*p2 == '\0') {
return (char*)p3;
}
p1 = p3 + 1;
p2 = str2;
}
return NULL;
}
```
这个实现使用了两个指针p1和p2来遍历被查找字符串和要查找的字符串,并且使用了另外一个指针p3来记录每次匹配开始的位置。如果匹配成功,则返回p3的指针。如果匹配失败,则将p1和p2重新初始化为下一次匹配的起点,继续查找。
阅读全文