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 | |
Strcmp | lstrcmp | (nessuna funzione equivalente) |
strcpy | lstrcpy | |
strlen | lstrlen |
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 | |
vsprintf | wvsprintf |
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.