名前空間
変種
操作

strrchr

From cppreference.com
< c‎ | string‎ | byte
ヘッダー <string.h> で定義
char* strrchr( const char* str, int ch );
(1)
/*QChar*/* strrchr( /*QChar*/* str, int ch );
(2) (C23以降)
1) null終端バイト文字列 str (各文字はunsigned charとして解釈される) 中で、(char)chとして変換された ch の最後の出現箇所を見つけます。終端のヌル文字は文字列の一部とみなされ、'\0' を検索した場合に見つけることができます。
2) 上記 (1) の型汎用(type-generic)関数です。T は未修飾の文字型とします。
  • strの型が const T*の場合、戻り値の型は const char*になります。
  • それ以外の場合、strの型が T*の場合、戻り値の型は char*になります。
  • それ以外の場合、動作は未定義です。
これらの汎用関数のマクロ定義が抑制され、実際の関数にアクセスされた場合(例:(strrchr) または関数ポインタが使用された場合)、実際の関数宣言 (1) が表示されます。

str がnull終端バイト文字列へのポインタでない場合、動作は未定義です。

目次

[編集] パラメータ

str - 解析対象のヌル終端バイト文字列へのポインタ
文字 - 検索する文字

[編集] 戻り値

str 内で見つかった文字へのポインタ。そのような文字が見つからなかった場合はヌルポインタ。

[編集]

#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char szSomeFileName[] = "foo/bar/foobar.txt";
    char* pLastSlash = strrchr(szSomeFileName, '/');
    char* pszBaseName = pLastSlash ? pLastSlash + 1 : szSomeFileName;
    printf("Base Name: %s", pszBaseName);
}

出力

Base Name: foobar.txt

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.24.5.5 The strrchr function (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.24.5.5 The strrchr function (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.24.5.5 The strrchr function (p: 368-369)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.21.5.5 The strrchr function (p: 331)
  • C89/C90標準 (ISO/IEC 9899:1990)
  • 4.11.5.5 The strrchr function

[編集] 関連項目

最初に出現する文字を見つける
(関数) [編集]
ある文字列に含まれる任意の文字が、別の文字列で最初に出現する位置を見つける
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)