_strrev
, _wcsrev
, , _mbsrev
, _mbsrev_l
Invierte los caracteres de una cadena.
Importante
_mbsrev
y _mbsrev_l
no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.
Sintaxis
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
Cadena terminada en NULL que se va a invertir.
locale
Configuración regional que se va a usar.
Valor devuelto
Devuelve un puntero a la cadena modificada. No se reserva ningún valor devuelto para indicar un error.
Comentarios
La función _strrev
invierte el orden de los caracteres de str
. El carácter nulo de finalización no cambia de lugar. _wcsrev
y _mbsrev
son versiones de caracteres anchos y multibyte de _strrev
. Los argumentos y el valor devuelto de son cadenas de _wcsrev
caracteres anchos. Los argumentos y el valor devuelto de son cadenas de _mbsrev
caracteres multibyte. Para _mbsrev
, no se cambia el orden de bytes de cada carácter multibyte de str
. Estas tres funciones se comportan exactamente igual.
_mbsrev
valida sus parámetros. Si o string1
string2
es un puntero nulo, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, _mbsrev
devuelve NULL
y establece errno
en EINVAL
. _strrev
y _wcsrev
no validen sus parámetros.
El valor de salida se ve afectado por el valor de la categoría LC_CTYPE
de la configuración regional. Para obtener más información, vea setlocale
. Las versiones de estas funciones son idénticas, salvo que las que no tienen el sufijo _l
usan la configuración regional actual y las que tienen el sufijo _l
usan el parámetro de configuración regional que se pasa. Para obtener más información, vea Locale.
Importante
Estas funciones pueden ser vulnerables a amenazas de saturación del búfer. Las saturaciones del búfer se pueden usar para ataques del sistema, ya que pueden producir una elevación de privilegios no justificada. Para obtener más información, consulte Evitar saturaciones del búfer.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina TCHAR.H | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
n/a | n/a | _mbsrev_l |
n/a |
Requisitos
Routine | Encabezado necesario |
---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> o <wchar.h> |
_mbsrev , _mbsrev_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
Vea también
Manipulación de cadenas
Configuración regional
Interpretación de secuencias de caracteres de varios bytes
strcpy
, , wcscpy
, _mbscpy
_strset
, _strset_l
, _wcsset
, _wcsset_l
, , _mbsset
, _mbsset_l