strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

文字列をスキャンして最後に出現する文字を検索します。

重要

_mbsrchr および _mbsrchr_l は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。

構文

char *strrchr(
   const char *str,
   int c
); // C only
char *strrchr(
   char *str,
   int c
); // C++ only
const char *strrchr(
   const char *str,
   int c
); // C++ only
wchar_t *wcsrchr(
   const wchar_t *str,
   wchar_t c
); // C only
wchar_t *wcsrchr(
   wchar_t *str,
   wchar_t c
); // C++ only
const wchar_t *wcsrchr(
   const wchar_t *str,
   wchar_t c
); // C++ only
unsigned char *_mbsrchr(
   const unsigned char *str,
   unsigned int c
); // C only
unsigned char *_mbsrchr(
   unsigned char *str,
   unsigned int c
); // C++ only
const unsigned char *_mbsrchr(
   const unsigned char *str,
   unsigned int c
); // C++ only
unsigned char *_mbsrchr_l(
   const unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C only
unsigned char *_mbsrchr_l(
   unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C++ only
const unsigned char *_mbsrchr_l(
   const unsigned char *str,
   unsigned int c,
   _locale_t locale
); // C++ only

パラメーター

str
NULL で終わる検索対象の文字列。

c
検索する文字。

locale
使用するロケール。

戻り値

in がNULL最後に出現cstrするか、見つからない場合cはポインターを返します。

解説

strrchr 関数は、最後に出現する c を検索します (charstr に変換される)。 検索には、終端の NULL 文字が含まれます。

wcsrchr 関数と _mbsrchr 関数は、strrchr 関数のワイド文字バージョンとマルチバイト文字バージョンです。 引数と戻り値 wcsrchr はワイド文字列です。 引数と戻り値 _mbsrchr はマルチバイト文字列です。

C では、これらの関数は、最初の引数に const ポインターを受け取ります。 C++ では、2 つのオーバーロードを使用できます。 const へのポインターを受け取るオーバーロードでは、const へのポインターが返されます。非 const へのポインターを受け取るバージョンでは、非 const へのポインターが返されます。 これらの関数の const と非 const の両方のバージョンを使用できる場合、_CRT_CONST_CORRECT_OVERLOADS というマクロが定義されます。 C++ のいずれのオーバーロードでも、非 const の動作が求められる場合は、シンボル _CONST_RETURN を定義してください。

_mbsrchr はそのパラメーターを検証します。 有効な場合strNULL、「パラメーターの検証」の説明に従って、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、errnoEINVAL に設定され、_mbsrchr は 0 を返します。 strrchr パラメーター wcsrchr を検証しません。 それ以外では、これらの関数の動作は同じです。

出力値は、ロケールの LC_CTYPE カテゴリの設定に影響されます。詳細については、setlocale を参照してください。 _l サフィックスが付いていないこれらの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。 詳細については、「 Locale」を参照してください。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tcsrchr strrchr _mbsrchr wcsrchr
該当なし 該当なし _mbsrchr_l 該当なし

必要条件

ルーチンによって返される値 必須ヘッダー
strrchr <string.h>
wcsrchr <string.h> または <wchar.h>
_mbsrchr, _mbsrchr_l <mbstring.h>

互換性の詳細については、「互換性」をご覧ください。

strrchr の使用例については、strchr を参照してください。

関連項目

文字列操作
ロケール
マルチバイト文字シーケンスの解釈
strchr, wcschr, _mbschr, _mbschr_l
strcspn, wcscspn, _mbscspn, _mbscspn_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strpbrk, wcspbrk, _mbspbrk, _mbspbrk_l
strspn, wcsspn, _mbsspn, _mbsspn_l\