_strrev
, , _wcsrev
_mbsrev
, ,_mbsrev_l
Inverse les caractères d’une chaîne.
Important
_mbsrev
et _mbsrev_l
ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.
Syntaxe
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
);
Paramètres
str
Chaîne se terminant par un caractère Null à inverser.
locale
Paramètres régionaux à utiliser.
Valeur retournée
Retourne un pointeur vers la chaîne modifiée. Aucune valeur de retour n'est réservée pour indiquer une erreur.
Notes
La fonction _strrev
inverse l’ordre des caractères dans str
. Le caractère Null de fin reste en place. _wcsrev
et _mbsrev
sont des versions à caractères larges et à caractères multioctets de _strrev
. Les arguments et la valeur de retour sont _wcsrev
des chaînes à caractères larges. Les arguments et la valeur de retour sont _mbsrev
des chaînes de caractères multioctets. Pour _mbsrev
, l’ordre des octets dans chaque caractère multioctet n’est str
pas modifié. Ces trois fonctions se comportent sinon de façon identique.
_mbsrev
valide ses paramètres. Si l’un string1
ou l’autre string2
est un pointeur Null, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à continuer, _mbsrev
retourne NULL
et définit errno
à EINVAL
. _strrev
et _wcsrev
ne valident pas leurs paramètres.
La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE
des paramètres régionaux. Pour plus d’informations, consultez setlocale
. Les versions de ces fonctions sont identiques, sauf que celles qui n'ont pas le suffixe _l
utilisent les paramètres régionaux actuels et celles qui ont le suffixe _l
utilisent à la place les paramètres régionaux qui ont été passés. Pour plus d’informations, consultez Locale.
Important
Ces fonctions peuvent être vulnérables aux menaces de dépassement de mémoire tampon. Les dépassements de mémoire tampon peuvent être utilisés pour les attaques du système, car ils peuvent provoquer une élévation des privilèges injustifiée. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine TCHAR.H | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
n/a | n/a | _mbsrev_l |
n/a |
Spécifications
Routine | En-tête requis |
---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> ou <wchar.h> |
_mbsrev , _mbsrev_l |
<mbstring.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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
Voir aussi
Manipulation de chaînes
Paramètres régionaux
Interprétation des séquences de caractères multioctets
strcpy
, , wcscpy
_mbscpy
_strset
, , _strset_l
, _wcsset_l
_wcsset
, , _mbsset
_mbsset_l