strchr
From cppreference.net
|
定義先ヘッダ
<string.h>
|
||
|
char
*
strchr
(
const
char
*
str,
int
ch
)
;
|
(1) | |
|
/*QChar*/
*
strchr
(
/*QChar*/
*
str,
int
ch
)
;
|
(2) | (C23以降) |
1)
ch
を(
char
への変換を
(
char
)
ch
によって行ったかのように)
str
が指すNULL終端バイト文字列内で最初に出現する位置を検索します(各文字は
unsigned
char
として解釈されます)。終端のNULL文字は文字列の一部と見なされ、
'
\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: 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++ documentation
for
strchr
|
|