_strrev, _wcsrev, _mbsrev, _mbsrev_l

Kehrt die Zeichen einer Zeichenfolge um.

Wichtig

_mbsrev und _mbsrev_l können nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

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
);

Parameter

str
Umzukehrende auf NULL endende Zeichenfolge.

locale
Zu verwendendes Gebietsschema.

Rückgabewert

Gibt einen Zeiger zur geänderten Zeichenfolge zurück. Kein Rückgabewert ist zur Fehleranzeige reserviert.

Hinweise

Die _strrev-Funktion kehrt die Reihenfolge der Elemente in str um. Das abschließende NULL-Zeichen bleibt bestehen. _wcsrev und _mbsrev sind Breitzeichen- und Multibytezeichenversionen von _strrev. Die Argumente und der Rückgabewert _wcsrev sind Zeichenfolgen mit breitem Zeichen. Die Argumente und der Rückgabewert sind _mbsrev Multibyte-Zeichenfolgen. For _mbsrev, the order of bytes in each multibyte character in str isn't changed. Diese drei Funktionen verhalten sich andernfalls identisch.

_mbsrev überprüft die eigenen Parameter. Wenn es sich um string1string2 einen Nullzeiger handelt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt _mbsrevNULL zurück und setzt errno auf EINVAL. _strrev und _wcsrev überprüfen Sie ihre Parameter nicht.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen sind nahezu identisch, außer dass diejenigen ohne das _l-Suffix das aktuelle Gebietsschema verwenden, und diejenigen mit _l-Suffix den übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.

Wichtig

Diese Funktionen sind möglicherweise für Pufferüberlaufrisiken anfällig. Pufferüberläufe können für Systemangriffe eingesetzt werden, da sie zu einer unbefugten Ausweitung der Berechtigungen führen. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

TCHAR.H-Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcsrev _strrev _mbsrev _wcsrev
Nicht zutreffend Nicht zutreffend _mbsrev_l Nicht zutreffend

Anforderungen

Routine Erforderlicher Header
_strrev <string.h>
_wcsrev <string.h> oder <wchar.h>
_mbsrev, _mbsrev_l <mbstring.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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

Siehe auch

Zeichenfolgenmanipulation
Gebietsschema
Interpretation von Multibyte-Zeichensequenzen
strcpy, wcscpy, _mbscpy
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l