文字列の最後から文字を検索する

strrchr

【書式】

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

【引数】

const char *s 検索対象文字列
int c 検索文字

【戻り値】

成功時 一致文字のアドレス
失敗時 NULL

【機能】

文字列sの最後から文字cを探し、最初に見つかった位置をポインタで返却します。 見つからなかったときにはNULLを返却します。
文字列終了コードの'\0'も文字列の一部と見なします。つまり、strrchr(s, 0);も可能です。

【インクルードファイル】

strrchr関数 string.h

【必要追加ライブラリ】

なし

使用例

〈サンプルプログラム〉

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

int main(void)
{
    char str[] = "abcdefghijklmnabcdefghijklmn";
    char *p;
    int c;

    printf("検索文字を入力してください。") ;
    c = getchar();

    p = strrchr(str, c);
    if(NULL != p)
    {
        printf("%cは文字列の%d番目にあります。\n", c, p-str);
        printf("以降の文字列は%sです。\n", p);
    }
    else
    {
        printf("%cは見つかりませんでした\n", c);
    }

    return 0;
}

〈出力〉

検索文字を入力してください。d
dは文字列の17番目にあります。
以降の文字列はdefghijklmnです。