扫描字符串以查找某个字符的末次出现位置。
重要
_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
要使用的区域设置。
返回值
返回指向 c 中的 str 末次出现位置的指针;如果找不到 NULL,则返回 c。
备注
strrchr 函数查找 c 中的 char(已转换为 str)末次出现位置。 搜索包括终止 NULL 字符。
wcsrchr 和 _mbsrchr 分别是 strrchr 的宽字符及多字节字符版本。
wcsrchr 的参数和返回值为宽字符字符串。
_mbsrchr 的自变量和返回值为多字节字符字符串。
在 C 中,这些函数采用第一个参数的一个 const 指针。 在 C++ 中,有两个重载可用。 采用指向 const 的指针的重载返回指向 const 的指针;采用指向非const 的版本的指针返回指向非const 的指针。 如果这些函数的 _CRT_CONST_CORRECT_OVERLOADS 和非 const 版本可用,则会定义宏 const。 如果这两个 C++ 重载都需要非 const 行为,请定义符号 _CONST_RETURN。
_mbsrchr 会验证其参数。 如果 str 为 NULL,则会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则将 errno 设置为 EINVAL,并且 _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> |
| %> | <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