命名空间
变体
操作

strchr

来自 cppreference.cn
< c‎ | string‎ | byte
定义于头文件 <string.h>
char* strchr( const char* str, int ch );
(1)
/*QChar*/ *strchr( /*QChar*/ *str, int ch );
(2) (since C23)
1)ch 中查找首次出现的位置(转换为 char 后,如同 (char)ch) 在 str 指向的 null 终止字节字符串中(每个字符都解释为 unsigned char)。终止空字符被视为字符串的一部分,并且可以在搜索 '\0' 时找到。
2) 类型泛型函数,等效于 (1)。令 T 为非限定字符对象类型。
  • 如果 str 的类型为 const T*,则返回类型为 const char*
  • 否则,如果 str 的类型为 T*,则返回类型为 char*
  • 否则,行为未定义。
如果抑制了每个泛型函数的宏定义以访问实际函数(例如,如果使用 (strchr) 或函数指针),则实际函数声明 (1) 变为可见。

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

目录

[编辑] 参数

str - 指向要分析的 null 终止字节字符串的指针
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("Found '%c' starting at '%s'\n", target, result);
        ++result; // Increment result, otherwise we'll find target at the same location
    }
}

输出

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

[编辑] 参考

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

[编辑] 参见

在一个数组中搜索字符的首次出现
(函数) [编辑]
查找字符的最后一次出现
(函数) [编辑]
在一个字符串中查找另一个字符串中任何字符的第一个位置
(函数) [编辑]
C++ 文档 关于 strchr