Condividi tramite


Informazioni sulle stringhe

Le funzioni stringa consentono alle applicazioni di copiare, confrontare, ordinare, formattare e convertire stringhe di caratteri, nonché i mezzi per determinare il tipo di carattere di ogni carattere in una stringa. Tutte le funzioni stringa supportano i set di caratteri a byte singolo, a doppio byte e Unicode se questi set di caratteri sono supportati dal sistema operativo in cui viene eseguita l'applicazione.

Avviso di sicurezza: L'uso non corretto delle funzioni stringa può causare problemi di sicurezza per l'applicazione. Questo comporta in genere un sovraccarico del buffer che può consentire un attacco Denial of Service contro l'applicazione o l'inserimento di codice eseguibile da un utente malintenzionato. Le funzioni Strsafe consentono la gestione più sicura delle stringhe e sono consigliate per una migliore sicurezza per l'applicazione. Per altre informazioni su queste funzioni, vedere Uso delle funzioni Strsafe.h.

In questa sezione vengono illustrati gli argomenti seguenti.

Confronto con funzioni stringa C Run-Time

Molte funzioni stringa duplicano o migliorano le funzioni di stringa familiari dalla libreria di runtime C (CRT) standard. Molti dei miglioramenti consentono alle funzioni stringa di funzionare con i set di caratteri Unicode o estesi. La tabella seguente illustra le funzioni CRT, le funzioni di Windows (che supportano Unicode, a differenza delle funzioni CRT) e le funzioni StrSafe.

Funzione stringa CRT Funzione stringa di Windows Funzione StrSafe
strcat lstrcat
StringCchCat
StringCchCatEx
StringCbCat
StringCbCatEx
Strcmp lstrcmp (nessuna funzione equivalente)
strcpy lstrcpy
StringCchCopy
StringCchCopyEx
StringCbCopy
StringCbCopyEx
strlen lstrlen
StringCchLength
StringCbLength

 

La funzione strlen , ad esempio, restituisce sempre il numero di byte in una stringa, ma la funzione lstrlen restituisce il numero di valori TCHAR , che fa riferimento ai byte per le versioni ANSI della funzione o dei valori WCHAR per le versioni Unicode.

Le funzioni stringa seguenti differiscono dalle funzioni C standard, ad esempio tolower e toupper , in quanto operano su qualsiasi carattere in un set di caratteri. Usando la funzione CharLower , ad esempio, un'applicazione può convertire un U maiuscolo con un umlaut (Ü) in minuscolo (ü). Per altre informazioni sui set di caratteri, vedere Set di caratteri a byte singolo.

Funzione Descrizione
CharLower Converte un carattere o una stringa in lettere minuscole.
CharLowerBuff Converte una stringa di caratteri in lettere minuscole.
CharNext Passa al carattere successivo in una stringa.
CharPrev Passa al carattere precedente in una stringa.
CharUpper Converte un carattere o una stringa in lettere maiuscole.
CharUpperBuff Converte una stringa in lettere maiuscole.

 

Le funzioni stringa seguenti determinano un carattere in base alla semantica della lingua selezionata dall'utente. Queste funzioni sono abilitate per Unicode.

Funzione Descrizione
IsCharAlpha Determina se un carattere è alfabetico.
IsCharAlphaNumeric Determina se un carattere è alfanumerico.
IsCharLower Determina se un carattere è minuscolo.
IsCharUpper Determina se un carattere è maiuscolo.

 

La tabella seguente illustra le estensioni Unicode per le funzioni di runtime C (CRT) standard. Come accennato in precedenza, le funzioni StrSafe consentono una gestione più sicura delle stringhe e sono consigliate per una migliore sicurezza per l'applicazione.

Funzione CRT standard Funzione String Funzione StrSafe
sprintf wsprintf
StringCchPrintf
StringCchPrintfEx
StringCbPrintf
StringCbPrintfEx
vsprintf wvsprintf
StringCchVPrintf
StringCchVPrintfEx
StringCbVPrintf
StringCbVPrintfEx

 

Risorse stringa

Un'applicazione che gestisce stringhe di caratteri nelle risorse può essere tradotta in nuove lingue con un impegno minimo. Anziché cercare stringhe nei moduli di origine, è sufficiente tradurre le stringhe nel file di risorse e ricollegare l'applicazione. Inoltre, l'uso di risorse stringa semplifica la creazione di versioni Unicode e non Unicode dell'applicazione dagli stessi file di origine.

La funzione LoadString carica una risorsa stringa dal file eseguibile di un'applicazione. La funzione FormatMessage carica una risorsa stringa e interpreta le opzioni di formattazione che possono essere incorporate nella stringa.

Le risorse in formato binario vengono archiviate in formato Unicode. Durante il caricamento delle risorse, le applicazioni possono usare la versione Unicode delle funzioni delle risorse (ad esempio LoadStringW) per ottenere risorse come dati Unicode.

Per le risorse stringa a 16 bit, 255 caratteri è la lunghezza massima. Per le risorse stringa a 32 bit, 65535 caratteri è la lunghezza massima.