先頭へ戻る

strchr | Programming Place Plus C言語編 標準ライブラリのリファレンス

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(名前順)

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(ヘッダ別)

先頭へ戻る

strchr関数

概要

文字列から、特定の文字を探す。

ヘッダ

string.h

形式

char* strchr(const char* s, int c);

引数

s

対象の文字列。

c

探す文字。

戻り値

発見された場合は、s の中で、 c と一致した文字を指すポインタを返す。
発見できなかった場合は、ヌルポインタを返す。

詳細

文字列s の先頭から検索を行い、引数c を char型にキャストしたものと一致する最初の文字を探す。
文字列s の終端にあるヌル文字についても、検索対象に含まれる。

注意

検索対象の文字列s は const であるのにも関わらず、戻り値は非const のポインタである。そのため、const指定されている文字列を対象にした場合に、返されたポインタを経由して書き換えを行うことは未定義の動作である。
(C++ では、const指定の扱いが厳しくなっているため、この関数は const版と非const版にオーバーロードされている)。

使用例

#include <stdio.h>
#include <string.h>

int main(void)
{
    char* p;

    p = strchr( "abcdef", 'd' );
    if( p == NULL ){
        puts( "見つからない。" );
    }
    else{
        puts( p );
    }

    return 0;
}

実行結果:

def

関連

文字列の末尾から逆方向に検索する strrchr関数がある。
文字列を探す場合は、strstr関数を使う。
また、文字列ではなく、メモリ上のバイト列を対象とした memchr関数がある。
ワイド文字版の wcschr関数がある。

解説章

第38章(練習問題⑦)


参考リンク


------------------------------------------------------------------------

更新履歴

'2018/4/22 解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。

'2018/4/20 「NULL」という表記を「ヌルポインタ」に修正。

'2018/4/17 全体的に文章を見直し修正。

'2018/1/22 新規作成。


------------------------------------------------------------------------

標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー