strchr

来自cppreference.com
< c‎ | string‎ | byte
在标头 <string.h> 定义
char* strchr( const char* str, int ch );
(1)
/*QChar*/ *strchr( /*QChar*/ *str, int ch );
(2) (C23 起)
1) 寻找 ch(如同用 (char)ch 转换成 char 后)在 str 所指向的空终止字节字符串(转译每个字符为 unsigned char)中的首次出现位置。终止空字符被认为是字符串的一部分,并且能在寻找 '\0' 时找到。
2) 等价于 (1) 的泛型函数。令 T 为未限定的 字符对象类型。
  • str 类型为 const T*,则返回类型为 const char*
  • 否则,若 str 类型为 T*,返回类型为 char*
  • 否则,行为未定义。
如果这些泛型函数中的某个宏定义被抑制无法访问实际函数(比如当使用了 (strchr) 或使用了函数指针时),则实际函数声明 (1) 即变得可见。

str 不是指向空终止字节字符串的指针,则行为未定义。

参数

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

返回值

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

示例

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    const char *str = "Try not. Do, or do not. There is no try.";
    char target = 'T';
    const char *result = str;
 
    while ((result = strchr(result, target)) != NULL)
    {
        printf("找到 '%c' 起始于 '%s'\n", target, result);
        ++result; // result 自增,否则我们会找到相同位置的目标
    }
}

输出:

找到 'T' 起始于 'Try not. Do, or do not. There is no try.'
找到 'T' 起始于 'There is no try.'

引用

  • C23 标准(ISO/IEC 9899:2024):
  • 7.24.5.2 The strchr function (第 TBD 页)
  • C17 标准(ISO/IEC 9899:2018):
  • 7.24.5.2 The strchr function (第 TBD 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.24.5.2 The strchr function (第 367-368 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.21.5.2 The strchr function (第 330 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.11.5.2 The strchr function

参阅

在数组中搜索字符的首次出现
(函数)
查找字符的最后一次出现
(函数)
查找一个字符串中的任意一个字符在另一个字符串中的首个位置
(函数)