c++strstr实现
时间: 2023-11-26 08:46:17 浏览: 74
c++中的strstr函数用于在一个字符串中查找另一个字符串的出现位置,其函数原型为:char *strstr(const char *str1, const char *str2)。其中str1为要查找的字符串,str2为要查找的子字符串。如果找到了子字符串,则返回子字符串在字符串中第一次出现的地址;如果没有找到,则返回NULL。下面是一个示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str1[] = "hello world";
char str2[] = "world";
char *result = strstr(str1, str2);
if (result != NULL)
{
cout << "子字符串在字符串中的位置为:" << result - str1 << endl;
}
else
{
cout << "未找到子字符串" << endl;
}
return 0;
}
```
相关问题
C++ strstr
C strstr函数是C语言中的一个字符串查找函数,用于在一个字符串中查找另一个子串的出现位置。该函数的声明如下:
```c++
char *strstr(const char *str1, const char *str2);
```
其中,str1是需要查找的字符串,str2是要查找的子串。如果找到了子串,该函数将返回指向该位置的指针;如果没有找到,该函数将返回空指针。
在给出的代码中,strStr函数就是实现了C strstr函数的功能。它通过两个指针来遍历字符串,比较字符是否相等,从而找到子串的位置。如果子串为空,则直接返回原字符串的指针。
在main函数中调用了strStr函数,并输出了找到的子串位置的指针。
帮我实现c++ strstr 方法
好的,C语言的 `strstr` 函数可以用于在一个字符串中查找另一个字符串。实现方法如下:
```c
char *strstr(const char *str1, const char *str2) {
const char *p1 = str1, *p2 = str2;
const char *p1Adv = str1;
if (*str2 == '\0') {
return (char *)str1;
}
while (*p1Adv != '\0') {
p1 = p1Adv;
p2 = str2;
while (*p1 != '\0' && *p2 != '\0' && *p1 == *p2) {
p1++;
p2++;
}
if (*p2 == '\0') {
return (char *)p1Adv;
}
p1Adv++;
}
return NULL;
}
```
这个函数接受两个参数,即要查找的字符串和要查找的目标字符串。如果目标字符串存在于要查找的字符串中,则返回目标字符串在要查找的字符串中第一次出现的位置。如果目标字符串不存在于要查找的字符串中,则返回 `NULL`。
阅读全文