_strrev, _wcsrev, _mbsrev, _mbsrev_l
Inverte i caratteri di una stringa.
Importante
_mbsrev e _mbsrev_l non possono essere utilizzate nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW.
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
);
Parametri
str
Stringa con terminazione null da invertire.locale
Impostazioni locali da utilizzare.
Valore restituito
Restituisce un puntatore alla stringa modificata. Nessun valore restituito è riservato per indicare un errore.
Note
La funzione _strrev inverte l'ordine dei caratteri in string. Il carattere di terminazione null rimane sul posto. _wcsrev e _mbsrev sono versioni a caratteri di tipo "wide" e di caratteri multibyte di _strrev. Gli argomenti e il valore restituito di _wcsrev sono stringhe di caratteri di tipo "wide", quelli di _mbsrev sono stringhe di caratteri multibyte. Per _mbsrev, l'ordine di byte in ogni carattere multibyte in string non viene modificato. Altrimenti queste tre funzioni si comportano in modo identico.
_mbsrev convalida i suoi parametri. Se string1 o string2 è un puntatore null, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, _mbsrev ritorna NULL e imposta errno a EINVAL. _strrev e _wcsrev non convalidano i relativi parametri.
Il valore di output è interessato dall'impostazione dell'impostazione della categoria LC_CTYPE delle impostazioni locali. Vedere setlocale, _wsetlocale per ulteriori informazioni. Le versioni di queste funzioni sono identiche, eccetto una non avente il suffisso _l che usa le impostazioni locali e l'altra che invece possiede il suffisso _l usa i parametri locali passati. Per ulteriori informazioni, vedere Impostazioni locali.
Nota sulla sicurezza |
---|
Queste funzioni potrebbero essere vulnerabili a rischi di sovraccarico del buffer.I sovraccarichi del buffer possono essere utilizzati per gli attacchi di sistema perché possono causare un'elevazione dei privilegi non autorizzata.Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer. |
Mapping di routine su testo generico
Routine TCHAR.H |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsrev |
_strrev |
_mbsrev |
_wcsrev |
n/d |
n/d |
_mbsrev_l |
n/d |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_strrev |
<string.h> |
_wcsrev |
<string.h> o <wchar.h> |
_mbsrev, _mbsrev_l |
<mbstring.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.