名前空間
変種
操作

strchr

From cppreference.com
< c‎ | string‎ | byte
ヘッダー <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

配列から文字が最初に出現する箇所を検索する
(関数) [編集]
最後に出現する文字を見つける
(関数) [編集]
ある文字列に含まれる任意の文字が、別の文字列で最初に出現する位置を見つける
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)