跳到主要内容

C++ strstr() 查找子串在字符串中的位置

strstr() 函数原型

const char* strstr( const char* str, const char* target );
char* strstr( char* str, const char* target );

strstr() 函数接受两个参数:strtarget。它搜索 str 指向的字符串中 target 的第一次出现。终止的空字符被忽略。

它定义在 <cstring> 头文件中。

strstr() 参数

  • str:指向要被搜索的以空字符结尾的字节字符串的指针。
  • target:指向要搜索的以空字符结尾的字节字符串的指针。

strstr() 返回值

  • 如果找到子串,strstr() 函数返回指向 dest 中子串第一个字符的指针。
  • 如果未找到子串,返回空指针。
  • 如果 dest 指向空字符串,则返回 str

示例:strstr() 函数如何工作

#include <cstring>
#include <iostream>

using namespace std;

int main()
{
char str[] = "Use your brain and heart";
char target[] = "brain";
char *p = strstr(str, target);

if (p)
cout << "'" << target << "' 存在于 \"" << str << "\" 的位置 " << p-str;
else
cout << target << " 不存在于 \"" << str << "\"";

return 0;
}

当你运行程序时,输出将是:

'brain' 存在于 "Use your brain and heart" 的位置 9