Udostępnij przez


_strrev, _wcsrev, _mbsrev, _mbsrev_l

Odwraca znaki ciągu.

Ważne

_mbsrevnie można jej _mbsrev_l używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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

Parametry

str
Ciąg zakończony wartością null w celu odwrócenia.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zwraca wskaźnik do zmienionego ciągu. Żadna wartość zwracana nie jest zarezerwowana, aby wskazać błąd.

Uwagi

Funkcja _strrev odwraca kolejność znaków w pliku str. Znak null zakończenia pozostaje w miejscu. _wcsrevi _mbsrev są wersjami znaków wielobajtowych i wielobajtowych ._strrev Argumenty i wartość zwracana _wcsrev wartości to ciągi wieloznakowe. Argumenty i wartość zwracana wartości to ciągi wielobajtowe _mbsrev znaków. W przypadku _mbsrevelementu kolejność bajtów w każdym znaku str wielobajtowym w obiekcie nie jest zmieniana. Te trzy funkcje zachowują się identycznie inaczej.

_mbsrev weryfikuje jego parametry. Jeśli element string1 lub string2 jest wskaźnikiem o wartości null, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Walidacja parametru. Jeśli wykonywanie jest dozwolone do kontynuowania, _mbsrev zwraca NULL i ustawia wartość EINVALerrno . _strrev i _wcsrev nie weryfikuj ich parametrów.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: setlocale. Wersje tych funkcji są identyczne, z tą różnicą, że te, które nie mają _l sufiksu, używają bieżących ustawień regionalnych, a te, które mają _l sufiks, zamiast tego używają parametru ustawień regionalnych, który jest przekazywany. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Ważne

Te funkcje mogą być narażone na przepełnienie buforu zagrożeń. Przepełnienia buforu mogą służyć do ataków systemowych, ponieważ mogą powodować nieuzasadnione podniesienie uprawnień. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcsrev _strrev _mbsrev _wcsrev
N/a N/a _mbsrev_l N/a

Wymagania

Procedura Wymagany nagłówek
_strrev <string.h>
_wcsrev <string.h> lub <wchar.h>
_mbsrev, _mbsrev_l <mbstring.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

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

Zobacz też

Manipulowanie ciągami
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
strcpy, wcscpy, _mbscpy
_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l