反转字符串的字符。
重要事项 |
|---|
_mbsrev 和 _mbsrev_l 不能在 Windows 运行时执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。 |
char *_strrev(
char *str
);
wchar_t *_wcsrev(
wchar_t *str
);
unsigned char *_mbsrev(
unsigned char *str
);
unsigned char *_mbsrev_l(
unsigned char *str,
_locale_t locale
);
参数
str
reverse 的 null 终止的字符串。locale
使用的区域设置。
返回值
返回指向该修改后的字符串。没有任何返回值保留指示错误。
备注
_strrev 功能撤消字符的顺序。string的。终止 null 字符) 仍留在原处。_wcsrev 和 _mbsrev 是 _strrev的宽字符和多字节字符版本。参数和返回 _wcsrev 的值是宽字符字符串;这些 _mbsrev 的多字节字符字符串。对于 _mbsrev,在 string 不更改字节顺序在每个多字节字符集的。这三个功能否则具有相同的行为。
_mbsrev 验证其参数。如果 string1 或 string2 是 null 指针,无效参数调用处理程序,如 参数验证所述。如果执行允许继续,_mbsrev 返回 NULL 并将 errno 到 EINVAL。_strrev 和 _wcsrev 不验证方法的参数。
输出值受设置 LC_CTYPE 类设置的影响区域设置;请参见 setlocale, _wsetlocale 有关更多信息。这些功能的版本相同,不同之处在于,没有 _l 后缀使用当前区域设置和一个位置_l 后缀使用区域设置参数传递的脚本。有关更多信息,请参见区域设置。
安全说明 |
|---|
这些功能可能容易受到的缓冲区溢出威胁。因为它们可能产生权限的非确保提升,缓冲区溢出可以为系统攻击使用。有关更多信息,请参见 避免缓冲区溢出。 |
一般文本例程映射
TCHAR.H 实例 |
未定义的_UNICODE & _MBCS |
定义的_MBCS |
定义的_UNICODE |
|---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
无 |
无 |
_mbsrev_l |
无 |
要求
实例 |
必需的标头 |
|---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> 或 <wchar.h> |
_mbsrev, _mbsrev_l |
<mbstring.h> |
有关其他的兼容性信息,请参见 兼容性。
示例
// crt_strrev.c
// This program checks a string to see
// whether it is a palindrome: that is, whether
// it reads the same forward and backward.
//
#include <string.h>
#include <stdio.h>
int main( void )
{
char* string = "Able was I ere I saw Elba";
int result;
// Reverse string and compare (ignore case):
result = _stricmp( string, _strrev( _strdup( string ) ) );
if( result == 0 )
printf( "The string \"%s\" is a palindrome\n", string );
else
printf( "The string \"%s\" is not a palindrome\n", string );
}
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例。
重要事项
安全说明