ViVi Home > 技術文書 > ポインタ入門 > 基礎演習問題> strrchr


 

 

C/C++ ポインタ入門 > 文字列関数 > strrchr
Nobuhide Tsuda
Nov-2013

末尾から文字検索:const char *my_strrchr(const char *str, char c)

const char *my_strrchr(const char *str, char c)
{
    int len = strlen(str);
    for(int i = len; --i >= 0;) {     //  for 文により、末尾から先頭に向かって検索
        if( str[i] == c )  {      //  検索文字と比較
            return str + i;     //  文字位置を返す
        }
    }
    return 0;     // 検索文字を発見できなかった場合
}

解説:

const char *my_strrchr(const char *str, char c)
{
    const char *ptr = str + strlen(str);     // ptr が終端のヌル文字を指すように初期化
    while( --ptr >= str ) {     // ptr を先頭方向に移動しつつ、先頭を超えてない間ループ
        if( *ptr == c )  {      //  検索文字と比較
            return ptr;     //  文字位置を返す
        }
    }
    return 0;     // 検索文字を発見できなかった場合
}

解説:

 


前: | 次: