_strrev
, , _wcsrev
, , _mbsrev
_mbsrev_l
Odwraca znaki ciągu.
Ważne
_mbsrev
nie 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. _wcsrev
i _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 _mbsrev
elementu 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ść EINVAL
errno
. _strrev
i _wcsrev
nie weryfikuj ich parametrów.
Na wartość wyjściową ma wpływ ustawienie LC_CTYPE
ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz 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 zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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