# std::strchr

< cpp‎ | string‎ | byte

定义于头文件 `<cstring>` |  |
const char* strchr( const char* str, int ch ); |  |
char* strchr( char* str, int ch ); |  |

在 `str` 所指向的字节字符串中寻找字符 static_cast<char>(ch) 的首次出现。

认为终止空字符是字符串的一部分，而且若搜索 '\0' 则能找到它。

### 参数

str | - | 指向待分析的空终止字节字符串的指针
ch | - | 要搜索的字符

### 返回值

指向 `str` 找到的字符的指针，若未找到该字符则为空指针。

### 示例

    #include <iostream>
    #include <cstring>

    int main()
    {
      const char *str = "Try not. Do, or do not. There is no try.";
      char target = 'T';
      const char *result = str;

      while ((result = std::strchr(result, target)) != NULL) {
        std::cout << "Found '" << target
                  << "' starting at '" << result << "'\n";

        // 自增 result，否则我们将找到相同位置的目标
        ++result;
      }
    }

输出：

    Found 'T' starting at 'Try not. Do, or do not. There is no try.'
    Found 'T' starting at 'There is no try.'

### 参阅

memchr | 在数组中搜索字符的首次出现 (函数)
find | 于字符串中寻找字符 (`std::basic_string<CharT,Traits,Allocator>` 的公开成员函数)
wcschr | 寻找宽字符串中宽字符的首次出现 (函数)
strrchr | 寻找字符的最后出现 (函数)
strpbrk | 寻找任何来自分隔符集合的字符的首个位置 (函数)