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

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

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


strstr関数

概要

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

ヘッダ

string.h

形式

char* strstr(const char* s1, const char* s2);

引数

s1

対象の文字列。

s2

探したい文字列。

戻り値

発見された場合は、s1 にある、s2 と同じ文字の並び(ただし終端のヌル文字は無視する)の先頭を指すポインタを返す。
発見できなかった場合は、ヌルポインタを返す。

詳細

文字列s1 の先頭から検索を行い、s2 と同じ文字の並びを探す。

注意

検索対象の文字列s1 は const であるのにも関わらず、戻り値は非const のポインタである。そのため、const指定されている文字列を対象にした場合、返されたポインタを経由して書き換えを行うことは未定義の動作である。

(C++ では、const指定の扱いが厳しくなっているため、この関数は const版と非const版にオーバーロードされている)。

使用例

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

int main(void)
{
    char* p = strstr("abcdcba", "cd");
    if (p == NULL) {
        puts("見つからない。");
    }
    else {
        puts(p);
    }
}

実行結果:

cdcba

関連

単独の文字を探す場合は strchr関数が使える。
ワイド文字版の wcsstr関数がある。

解説章

逆引き 文字列から文字列を探す


参考リンク


更新履歴

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

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

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

’2018/1/22 新規作成。



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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る