Costanti carattere C++
Le costanti carattere sono uno o più membri di set di caratteri di origine di base, il set di caratteri in cui un programma viene scritto, racchiuso tra virgolette semplici (').Vengono utilizzati per rappresentare i caratteri in set di caratteri di base di esecuzione, il set di caratteri nel computer in cui il programma.
Specifici di Microsoft
Per il compilatore C/C++ Microsoft, i set di caratteri di esecuzione e di origine sono entrambe le ASCII.
Il set di caratteri di origine di base è composto da 96 caratteri: lo spazio; i caratteri di controllo che rappresentano la tabulazione orizzontale, la tabulazione verticale, avanzamento pagina e la nuova riga; e di seguito 91 caratteri:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
_{}] [# () <>%: ;?. *+-/^&|~! =, \„ “
Il set di caratteri di base di esecuzione è costituita da caratteri in caratteri di origine di base impostati e anche dei caratteri di controllo che rappresentano l'avviso, lo spazio finale, il ritorno a capo e null.
Microsoft FINALE specifico
Esistono tre tipi di costanti carattere:
Costanti carattere normale
costanti di Multicharacter
Costanti a caratteri estesi
[!NOTA]
Utilizzare le costanti a caratteri estesi anziché le costanti di multicharacter per garantire la portabilità.
Le costanti carattere sono specificate come uno o più caratteri racchiusi tra virgolette semplici.Di seguito è riportato un esempio:
char ch = 'x'; // Specify normal character constant.
int mbch = 'ab'; // Specify system-dependent
// multicharacter constant.
wchar_t wcch = L'ab'; // Specify wide-character constant.
si noti che mbch è di tipo int.Se è stato dichiarato come tipo char, il secondo byte non viene mantenuto.Una costante di multicharacter dispone di quattro caratteri significativi, specificare più di quattro generato un messaggio di errore.
I caratteri in una costante carattere possono essere tutti i caratteri grafici nel set di caratteri di origine, ad eccezione della nuova riga, la barra rovesciata \, la virgoletta singola 'e le virgolette “, o possono essere specificati utilizzando una sequenza di escape.Esistono tre tipi di sequenze di escape: semplice, ottale e sequenze di escape esadecimali.
Le sequenze di escape semplici possono essere uno dei seguenti valori:
\' \" \? \\
\a \b \f \n \r \t \v
Una sequenza di escape ottale è una barra rovesciata seguita da una sequenza di fino a 3 cifre ottali.
Una sequenza di escape esadecimale è una barra rovesciata, seguita dal carattere x, seguito da una sequenza di cifre esadecimali.
Microsoft C++ supporta il normale, il multicharacter e le costanti a caratteri estesi.Utilizzare le costanti a caratteri estesi per specificare i membri del set di caratteri esteso di esecuzione (ad esempio, per supportare un'applicazione internazionale).Le costanti carattere normale dispongono del tipo char, le costanti di multicharacter dispongono del tipo inte le costanti a caratteri estesi dispongono del tipo wchar_t.(Il tipo wchar_t viene definito nei file di inclusione standard STDDEF.H, STDLIB.H e STRING.H.Le funzioni a caratteri estesi, tuttavia, sono prototipo completo solo in STDLIB.H).
L'unica differenza nella specifica tra le costanti normali e a caratteri estesi è che le costanti a caratteri estesi sono preceduti dalla lettera L.Di seguito è riportato un esempio:
char schar = 'x'; // Normal character constant
wchar_t wchar = L'\x8119'; // Wide-character constant
Nella tabella seguente sono illustrati i caratteri riservati o nongraphic che sono sistema dipendente o non valido nelle costanti carattere.Questi caratteri devono essere rappresentati con le sequenze di escape.
C++ riservato o caratteri di Nongraphic
Carattere |
ASCII Rappresentazione |
ASCII Valore |
sequenza di escape |
---|---|---|---|
Nuova riga |
ARGOMENTI NL (LF) |
10 o 0x0a |
\n |
Tabulazione orizzontale |
GH |
9 |
\t |
Tabulazione verticale |
VT |
11 o 0x0b |
\v |
Backspace |
le BS |
8 |
\b |
Ritorno a capo |
CR |
13 o 0x0d |
\r |
Avanzamento carta |
FF |
12 o pertanto |
\f |
Avviso |
BEL |
7 |
\a |
Barra rovesciata |
\ |
92 o 0x5c |
\\ |
punto interrogativo |
? |
63 o 0x3f |
\? |
Virgoletta singola |
' |
39 o 0x27 |
\' |
Virgoletta doppia |
34 o 0x22 |
\" |
|
numero ottale |
ooo |
— |
\ooo |
numero esadecimale |
hhh |
— |
\ xhhh |
carattere null |
NUL |
0 |
\0 |
Se il carattere che segue la barra rovesciata non specifica una sequenza di escape valida, il risultato è implementazione definita.In Microsoft C++, il carattere che segue la barra rovesciata viene preso letteralmente, ad esempio se il carattere di escape non fosse presente e di Livello 1 (“sequenza di caratteri di escape sconosciuta„) viene pubblicato.
Sequenze di escape ottali, specificate nel formato \ooo, costituito da una barra rovesciata e di un, due, o tre caratteri ottali.Sequenze di escape esadecimali, specificate nel formato \ xhhh, che contenga caratteri \x seguito da una sequenza di cifre esadecimali.A differenza delle costanti ottali di escape, non esiste un limite per il numero di cifre esadecimali in una sequenza di escape.
Le sequenze di escape ottali sono terminate dal primo carattere che non è una cifra ottale, o quando tre caratteri vengono visualizzati.Di seguito è riportato un esempio:
wchar_t och = L'\076a'; // Sequence terminates at a
char ch = '\233'; // Sequence terminates after 3 characters
Analogamente, le sequenze di escape esadecimali terminano al primo carattere che non è una cifra esadecimale.Poiché le cifre esadecimali sono incluse le lettere a in f (e A in F), assicurarsi che la sequenza di escape termini la cifra desiderata.
Poiché la virgoletta singola (') include le costanti carattere, utilizzare la sequenza di escape \' per rappresentare le virgolette singole inclusi.Le virgolette doppie (") può essere rappresentato senza una sequenza di escape.Il carattere barra rovesciata (\) è un carattere di continuazione di riga quando viene posizionato alla fine di una riga.Se si desidera che un carattere barra rovesciata per la visualizzazione all'interno di una costante carattere, è necessario barre rovesciate di tipo due in una riga (\\).(Vedere fasi di conversione in Riferimento del preprocessore per ulteriori informazioni sulla continuazione di riga.)