Share via


_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 sortie est affectée par le paramètre de 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 Éviter 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 routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _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îne
Paramètres régionaux
Interprétation des séquences de caractères multioctets
strcpy, wcscpy, _mbscpy
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l