strchr
来自 cppreference.com
在头文件 <string.h> 中定义 |
||
char* strchr( const char* str, int ch ); |
(1) | |
/*QChar*/ *strchr( /*QChar*/ *str, int ch ); |
(2) | (自 C23 起) |
1) 在由 str 指向的以 null 结尾的字节字符串中查找 ch 的第一个出现位置(转换为 char,如同使用 (char)ch)。终止的 null 字符被视为字符串的一部分,可以在搜索 '\0' 时找到。
2) 等效于 (1) 的类型泛型函数。令
T
为一个非限定字符对象类型。- 如果
str
的类型为 const T*,则返回值类型为 const char*。 - 否则,如果
str
的类型为 T*,则返回值类型为 char*。 - 否则,行为未定义。
- 如果
如果 str 不是指向以 null 结尾的字节字符串的指针,则行为未定义。
内容 |
[编辑] 参数
str | - | 指向要分析的以 null 结尾的字节字符串的指针 |
ch | - | 要搜索的字符 |
[编辑] 返回值
指向 str 中找到的字符的指针,如果未找到此类字符,则为 null 指针。
[编辑] 示例
运行此代码
#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 strchr 函数 (p: TBD)
- C17 标准 (ISO/IEC 9899:2018)
- 7.24.5.2 strchr 函数 (p: TBD)
- C11 标准 (ISO/IEC 9899:2011)
- 7.24.5.2 strchr 函数 (p: 367-368)
- C99 标准 (ISO/IEC 9899:1999)
- 7.21.5.2 strchr 函数 (p: 330)
- C89/C90 标准 (ISO/IEC 9899:1990)
- 4.11.5.2 strchr 函数
[编辑] 另请参阅
在数组中搜索字符的第一次出现位置 (函数) | |
查找字符的最后一次出现位置 (函数) | |
在另一个字符串中查找一个字符串中任何字符的第一次出现位置 (函数) | |
C++ 文档 用于 strchr
|