次の方法で共有


strrchrwcsrchr_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
使用するロケール。

戻り値

strで最後に発生したcへのポインターを返します。見つからない場合はNULLc返します。

解説

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 を返します。 strrchrwcsrchr はパラメーターを検証しません。 それ以外では、これらの関数の動作は同じです。

出力値は、ロケールの 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 を参照してください。

関連項目

文字列操作
ロケール
マルチバイト文字のシーケンスの解釈
strchrwcschr_mbschr_mbschr_l
strcspnwcscspn_mbscspn_mbscspn_l
_strnicmp_wcsnicmp_mbsnicmp_strnicmp_l_wcsnicmp_l_mbsnicmp_l
strpbrkwcspbrk_mbspbrk_mbspbrk_l
strspnwcsspn_mbsspn_mbsspn_l\