strstr

文字列1から文字列2を検索する

【書式】
#include <string.h>
char *strstr(const char *s1, const char *s2);

【説明】
文字列 s1 の先頭から文字列 s2 を探し、見つかったときにはその位置をポインタで返却し、見つからなかったときにはNULLを返却します。

【引数】
const char *s1 : 検索対象文字列
const char *s2 : 検索文字列

【戻り値】
見つかったとき     : 一致文字のアドレス
見つからなかったとき : NULL

文字列s2 は 文字列s1 よりも長くても支障ありません。(ただし、一致しないのでNULLが返却されます)
文字列s2 が '\0' の場合には、s1 が返却されます。

【使用例】
#include        <stdio.h>
#include        <string.h>

int main(void)
{
        char    s1[] = "abcdefghijklmn";        /* 検索対象文字列 */
        char    s2[] = "defgh";                 /* 一致する場合 */
        char    s3[] = "xyz";                   /* 一致しない場合 */
        char    s4[] = "abcdefghijklmnopqr";    /* 検索対象文字列より長い場合 */
        char    s5[] = "";                      /* \0 */
        char    *sp;
        
        sp = strstr(s1,s2);
        printf("一致する場合 : %s\n",sp);
        sp = strstr(s1,s3);
        printf("一致しない場合 : %s\n",sp);
        sp = strstr(s1,s4);
        printf("検索対象文字列より長い場合 : %s\n",sp);
        sp = strstr(s1,s5);
        printf("\\0 : %s\n",sp);
        
        return 0;
}
【実行結果例】
一致する場合 : defghijklmn
一致しない場合 : (null)
検索対象文字列より長い場合 : (null)
\0 : abcdefghijklmn

※ LSIC-86で確認。printfは NULL を (null) と表示します。

戻る


banner
初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved