strchr
From cppreference.com
| ヘッダー <string.h> で定義 |
||
| char* strchr( const char* str, int ch ); |
(1) | |
| /*QChar*/ *strchr( /*QChar*/ *str, int ch ); |
(2) | (C23以降) |
1) null終端バイト文字列
str内で、`ch`(` (char)ch`として変換されたもの)の最初の出現箇所を検索します(各文字は unsigned charとして解釈されます)。終端のヌル文字は文字列の一部と見なされ、` '\0'`を検索したときに検出される可能性があります。2) 上記 (1) の型汎用(type-generic)関数です。
T は未修飾の文字型とします。strの型がconst T*の場合、戻り値の型はconst char*になります。- それ以外の場合、
strの型がT*の場合、戻り値の型はchar*になります。 - それ以外の場合、動作は未定義です。
(strchr)または関数ポインタが使用された場合)、実際の関数宣言(1)が可視になります。strがnull終端バイト文字列へのポインタでない場合、動作は未定義です。
目次 |
[編集] Parameters
| str | - | 解析対象のヌル終端バイト文字列へのポインタ |
| 文字 | - | 検索する文字 |
[編集] Return value
str内で見つかった文字へのポインタ。そのような文字が見つからなかった場合はヌルポインタ。
[編集] Example
このコードを実行
#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.'
[編集] References
- 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
[編集] See also
| 配列から文字が最初に出現する箇所を検索する (関数) | |
| 最後に出現する文字を見つける (関数) | |
| ある文字列に含まれる任意の文字が、別の文字列で最初に出現する位置を見つける (関数) | |
| C++ documentation for strchr
| |