C言語例文集


 strstr()    文字列の中から文字列を検索する

ヘッダ string.h
書式 char *strstr(const char *str1, const char *str2);
引数 str1 … 検索対象となる文字列ポインタ
str2 … 検索する文字列ポインタ
戻り値 成功(文字列が見つかった場合) :一致が始まった文字列のポインタ
失敗(文字列が見つからない場合):NULL
解説 文字列str1の中から文字列str2が最初に現れる位置のポインタを返す関数。
文字列str1の中に文字列str1がない場合はNULLを返す。
文字列str2は文字列str1よりも長くても支障はない(NULLを返す)。


<サンプルプログラム>

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

int main()
{
    char str1[16] = "tokugawaieyasu";
    char str2[16] = "ie";
    char str3[16] = "hideyoshi";
    char *pos1;
    char *pos2;

    // 変数初期化
    pos1 = NULL;
    pos2 = NULL;

    // 文字列を探す
    pos1 = strstr(str1, str2);  // 最初に文字列"ie"が現れる場所を探す
    pos2 = strstr(str1, str3);  // 最初に文字列"hideyoshi"が現れる場所を探す

    // 文字列"ie"が現れる位置を求める
    if(pos1 == NULL)
    {
        printf("「%s」の中に文字列「%s」は見つかりませんでした。\n", str1, str2);
    }
    else
    {
        printf("「%s」で最初に文字列「%s」が現れる場所は%d文字目です。\n", str1, str2, pos1 - &str1[0] + 1);
    }

    // 文字列"hideyoshi"が現れる位置を求める
    if(pos2 == NULL)
    {
        printf("「%s」の中に文字列「%s」は見つかりませんでした。\n", str1, str3);
    }
    else
    {
        printf("「%s」で最初に文字列「%s」が現れる場所は%d文字目です。\n", str1, str3, pos2 - &str1[0] + 1);
    }

    printf("\n");

    return 0;
}
/****************************************************************************/

<実行結果>



<Topページ>

Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。