strchr
From cppreference.net
|
定义于头文件
<string.h>
|
||
|
char
*
strchr
(
const
char
*
str,
int
ch
)
;
|
(1) | |
|
/*QChar*/
*
strchr
(
/*QChar*/
*
str,
int
ch
)
;
|
(2) | (C23 起) |
1)
在由
str
指向的以空字符结尾的字节字符串中(每个字符被解释为
unsigned
char
),查找
ch
(经
(
char
)
ch
方式转换为
char
)的首次出现。终止空字符被视为字符串的一部分,在搜索
'
\0
'
时可以被找到。
2)
与
(1)
等效的类型泛型函数。令
T
为无限定字符对象类型。
-
-
若
str的类型为 const T * ,则返回类型为 const char * 。 -
否则,若
str的类型为 T * ,则返回类型为 char * 。 - 否则行为未定义。
-
若
如果 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("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: 待定)
- C11 标准 (ISO/IEC 9899:2011):
-
- 7.24.5.2 strchr 函数 (页码: 367-368)
- C99标准(ISO/IEC 9899:1999):
-
- 7.21.5.2 strchr函数(页码:330)
- C89/C90 标准 (ISO/IEC 9899:1990):
-
- 4.11.5.2 strchr 函数
参见
|
在数组中搜索字符的首次出现
(函数) |
|
|
查找字符的最后一次出现
(函数) |
|
|
在一个字符串中查找另一个字符串中任意字符的首个位置
(函数) |
|
|
C++ documentation
for
strchr
|
|