_strrev, _wcsrev, _mbsrev, _mbsrev_l
Inverte os caracteres de uma cadeia de caracteres.
Importante
_mbsrev e _mbsrev_l não podem ser usados em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /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
);
Parâmetros
str
Cadeia de caracteres terminada com Null a ser invertida.locale
Localidade a ser usada.
Valor de retorno
Retorna um ponteiro para a cadeia de caracteres alterada. Nenhum valor de retorno é reservado para indicar um erro.
Comentários
A função _strrev inverte a ordem dos caracteres em string. O caractere de terminação nula permanece no lugar. _wcsrev e _mbsrev são versões de caracteres largos e de multibyte de _strrev. Os argumentos e o valor de retorno de _wcsrev são cadeias de caracteres largos; _mbsrev são cadeias de caracteres de vários bytes. Para _mbsrev, a ordem dos bytes em cada caractere de multibyte em string não é alterada. Essas três funções se comportam de forma idêntica.
_mbsrev valida seus parâmetros. Se string1 ou string2 for um ponteiro nulo, o parâmetro de manipulador inválido será chamado, como descrito em Validação do 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 de localidade. Para obter mais informações, consulte setlocale, _wsetlocale. As versões dessas funções são idênticas, exceto aquelas que não têm o sufixo _l usam a localidade atual e aquelas que têm o sufixo_l, ao contrário, usam o parâmetro de localidade que foi informado. Para obter mais informações, consulte Localidade.
Observação de segurança |
---|
Essas funções podem ser vulneráveis às ameaças de saturação de buffer.As saturações de buffer podem ser usadas para ataques ao sistema, pois podem causar uma elevação de privilégios injustificável.Para obter mais informações, consulte Evitando saturações de buffer. |
Mapeamentos da rotina de texto genérico
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
n/d |
n/d |
_mbsrev_l |
n/d |
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> ou <wchar.h> |
_mbsrev, _mbsrev_l |
<mbstring.h> |
Para obter informações adicionais 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 );
}
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.
Consulte também
Referência
Manipulação da cadeia de caracteres (CRT)