_strrev
, _wcsrev
, _mbsrev
, _mbsrev_l
Reverte os caracteres de uma cadeia de caracteres.
Importante
_mbsrev
e _mbsrev_l
não podem ser usados em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
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
);
Parâmetros
str
Cadeia de caracteres terminada em nulo para reverter.
locale
Localidade a usar.
Retornar valor
Retorna um ponteiro para a cadeia de caracteres alterada. Nenhum valor retornado é reservado para indicar um erro.
Comentários
A função _strrev
inverte a ordem dos caracteres em str
. O caractere nulo de terminação permanece em vigor. _wcsrev
e _mbsrev
são versões de caracteres largos e de caracteres multibyte de _strrev
. Os argumentos e o valor de retorno de são cadeias de _wcsrev
caracteres largos. Os argumentos e o valor de retorno de são cadeias de _mbsrev
caracteres multibyte. Para _mbsrev
, a ordem dos bytes em cada caractere multibyte não str
é alterada. Caso contrário, essas três funções se comportam de forma idêntica.
_mbsrev
valida seus parâmetros. Se um ou string2
for um string1
ponteiro nulo, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, _mbsrev
retornará NULL
e definirá errno
como EINVAL
. _strrev
e _wcsrev
não validam seus parâmetros.
O valor de saída é afetado pela configuração da categoria LC_CTYPE
da localidade. Para obter mais informações, consulte setlocale
. As versões dessas funções são idênticas, exceto que aquelas que não têm o sufixo _l
usam a localidade atual e as com um sufixo _l
usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.
Importante
Essas funções podem ser vulneráveis a ameaças de estouro de buffer. Os estouros de buffer podem ser usados em ataques de sistema porque podem causar uma elevação de privilégio não garantida. Para obter mais informações, consulte Evitando saturações de buffer.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
n/a | n/a | _mbsrev_l |
n/a |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> ou <wchar.h> |
_mbsrev , _mbsrev_l |
<mbstring.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// 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 );
}
The string "Able was I ere I saw Elba" is a palindrome
Confira também
Manipulação de cadeia de caracteres
Localidade
Interpretação de sequências de caracteres multibyte
strcpy
, wcscpy
, _mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, _mbsset
, _mbsset_l
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de