std::strstr

来自cppreference.com
< cpp‎ | string‎ | byte
在标头 <cstring> 定义
const char* strstr( const char* haystack, const char* needle );
      char* strstr(       char* haystack, const char* needle );

haystack 所指的字节字符串中寻找字节字符串 needle 的首次出现。不比较空终止字符。

参数

haystack - 指向要检验的空终止字节字符串的指针
needle - 指向要搜索的空终止字节字符串的指针

返回值

指向 haystack 中寻获子串的首个字符的指针,或若找不到该字符则为空指针。若 needle 指向空字符串,则返回 haystack

示例

#include <cstring>
#include <iostream>
 
int main()
{
    const char *str = "Try not. Do, or do not. There is no try.";
    const char *target = "not";
    const char *result = str;
 
    while ((result = std::strstr(result, target)))
    {
        std::cout << "找到以 '" << target 
                  << "' 开始的 '" << result << "'\n";
 
        // 自增 result,否则会找到同一位置的目标
        ++result;
    }   
}

输出:

找到以 'not' 开始的 'not. Do, or do not. There is no try.'
找到以 'not' 开始的 'not. There is no try.'

参阅

寻找给定子串的首次出现
(std::basic_string<CharT,Traits,Allocator> 的公开成员函数)
在另一宽字符串中寻找宽字符串的首次出现
(函数)
寻找字符的首次出现
(函数)
寻找字符的最后出现
(函数)