Compartilhar via


_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çaObservaçã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)

Localidade

Interpretação de sequências de caracteres multibyte

strcpy, wcscpy, _mbscpy

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l