Carattere letterale
Un personaggio letterale è un personaggio in singole citazioni. COSÌ,
char ident1 = 'a'; char ident2 = 'b'; char ident3 = '4'; char ident4 = '6';sono tutte diverse definizioni di personaggi. Si noti che una cifra in singoli citazioni è un personaggio e non un numero intero.
Una sequenza di fuga come \ "(vedi sotto) in singole citazioni, è un personaggio. COSÌ,
char ident1 = '"';è un personaggio.
Un singolo simbolo in doppia quota non è un personaggio; è una stringa di un personaggio. Quindi "A" o "C" o "2" non è un personaggio ma è una stringa di un personaggio ciascuno.
La variabile di un carattere può essere riassegnata, in seguito nel programma, come segue:
char ident = 'x';Per impedire a un personaggio assegnato a un identificatore di essere cambiato, in seguito nel programma, precedere la definizione con la parola riservata, const, come segue:
const char ident = 'd';La variabile, si dice che sia di sola lettura.
Stringa letterale
Una stringa letterale è una sequenza di caratteri in doppie citazioni. COSÌ,
char ident1 [] = "ti amo"; char ident2 [] = "odio 3 di voi"; char ident3 []sono tutte diverse definizioni di letterali di stringa. Nota l'uso di doppie quote. Non c'è niente come una variabile normale per una stringa. Una stringa letterale è una matrice di caratteri, dove invece di delimitare con , la sequenza è delimitata con "". I caratteri non sono separati dalle virgole. Qualsiasi numero maggiore del numero di caratteri nella stringa letterale può essere posizionato tra le staffe quadrate. Tuttavia, è meglio lasciare le staffe quadrate vuote.
Un singolo carattere in doppia citazione non è un personaggio; è una stringa di un personaggio. Quindi "A" o "C" o "2" non è un personaggio, ma una stringa di un personaggio ciascuno.
Una variabile di stringa non consente la riassegnazione del letterale completo, successivamente in basso nel programma - vedi sotto. Tuttavia, i singoli caratteri possono essere riassociati - vedi sotto.
Citazione singola e doppia nel carattere o letterale
Per avere una singola citazione come personaggio, fai qualcosa di simile,
char ident = '\' ';Per avere una doppia citazione come personaggio in una stringa letterale, fai qualcosa di simile,
char identi [] = "AB" cd ";La backslash viene utilizzata in una sequenza di fuga, per evitare il conflitto con delimitatori. Per avere una doppia citazione come personaggio, non è necessario per la retroscena: '' 'va bene. Per avere una singola citazione in una stringa letterale, non è necessario per la backslash: "ab'cd" va bene.
Poiché la retromarcia viene utilizzata per sfuggire a un personaggio, deve essere fuggita con un'altra retroscena se usato come personaggio o in una corda letterale.
Sequenza di fuga
Una sequenza di fuga è una di:
\ '"\? \\ \ a \ b \ f \ n \ r> \ t \ vOgni sequenza di fuga viene normalmente digitata come un carattere all'interno di singole citazioni o come una sequenza di fuga all'interno di doppie quote.
Operazioni con personaggi
Concatenazione
Alla definizione, i letterali a due stringhe possono essere uniti allo spazio come segue:
char identi [] = "ABC" "def";L'output è: ABCDEF . Questa definizione può essere estesa a più di due letterali. Nota: l'istruzione è una definizione, non solo un incarico. La definizione può anche continuare alla riga successiva con lo spazio che separa le linee come segue:
char identi [] = "ABC" "def"L'output è, Abcdefghi.
Nota: i personaggi non possono essere concatenati in questo modo, poiché le citazioni singole per il personaggio non possono avere più di un simbolo.
Operatori di uguaglianza
Gli stessi caratteri nello stesso caso sono uguali. Non sono uguali se non sono dello stesso caso. Prendere in considerazione,
bool result = 'b' == 'b';== mezzi uguali, mentre = mezzi assegnati e non uguali. L'output è 1 per vero. Prendere in considerazione,
bool result = 'b' == 'b';L'output è 0 per false. Prendere in considerazione,
bool result = 'b' == 'c';L'output è 0 per false. Prendere in considerazione,
bool result = 'b' != 'B';!= significa non eguali, mentre = significa assegnato e non uguale. L'output è 0 per false. Prendere in considerazione,
bool result = 'b' != 'b';L'output è 1 per vero. Prendere in considerazione,
bool result = 'b' != 'c';L'output è 1 per vero.
Quindi, == e != sono operatori di uguaglianza.
Operatori relazionali
Per i caratteri ordinari in C ++, in ordine crescente, i numeri vengono prima delle lettere maiuscole, che vengono prima delle lettere minuscole.
COSÌ < will return true (1) when the left character is less than the right character. The other relational operators, , >= vengono spiegati allo stesso modo.
La stringa letterale come oggetto
L'array è un puntatore costante all'inizio di una particolare sequenza del tipo di dati. Allo stesso modo, la stringa è un puntatore costante all'inizio di una sequenza di caratteri. Confronta le seguenti definizioni:
int arr [] = 3, 4, 5, 6, 7;Il primo array è un array di int e ha cinque elementi. La seconda e il terzo array sono array di caratteri con nomi diversi, ma lo stesso numero di elementi. La seconda e il terzo array sono uguali, ma per i loro nomi. Il contenuto di testo del secondo array è delimitato dalle parentesi graffe; I personaggi sono separati dalle virgole e ogni personaggio è in singole citazioni. Il contenuto di testo del terzo array è delimitato da doppie citazioni; I personaggi non sono separati da virgole e ogni personaggio non è in singole citazioni. La seconda e il terzo array sono due modi per produrre una stringa, con la terza via che è il modo migliore.
ARR è un puntatore costante al primo elemento del suo array, il che significa che arr indicherà sempre la posizione con l'intero, 3 anche se il valore di 3 viene modificato. La dimensione dell'array, cinque elementi, non rimane davvero costante. Tuttavia, ciascuno dei valori dell'array può essere modificato.
STR è un puntatore costante al primo elemento del suo array, il che significa che STR indicherà sempre la posizione con il carattere, "w" anche se il valore di "w" viene cambiato. La dimensione dell'array di caratteri, cinque elementi, non rimane davvero costante. Tuttavia, ciascuno dei valori del letterale può essere modificato.
Stri è un puntatore costante al primo elemento del suo letterale (array), il che significa che Stri indicherà sempre la posizione con il carattere, w anche se il valore di W viene modificato. La dimensione del letterale della stringa (array), cinque elementi, non rimane davvero costante. Tuttavia, ciascuno dei valori del letterale può essere modificato.
Ciò che è costante in un array o in una corda letterale? L'indirizzo di memoria del primo elemento dell'array o del letterale rimane come valore del nome (identificatore) dell'array o letterale e non può essere modificato. Bene, la dimensione dell'array o del letterale non rimane davvero costante. Ogni valore nell'array o letterale può essere modificato. Il seguente codice mostra come è stato modificato il quarto elemento di ciascuno degli array:
int arr [] = 3, 4, 5, 6, 7;L'output è:
9Si noti che è possibile accedere agli elementi di una stringa definita letterale, come per la terza definizione sopra,. Di seguito è riportato il motivo della seconda riga dell'output.
DEFINIZIONE INDIPIPIO
Si noti che nelle definizioni di cui sopra, non esiste un numero intero per il pedice. Quando il numero di elementi non può essere facilmente determinato, dal programmatore, l'intero per il sottoscrizione dovrebbe essere omesso. Qualunque cosa accada, l'intero non dovrebbe essere inferiore al numero di elementi nell'array.
Per la stringa letterale, l'intero dovrebbe essere almeno 1 superiore al numero di caratteri nella stringa. Questo perché il carattere null (\ 0) viene sempre aggiunto dal compilatore, alla fine di un array che è una stringa, delimitata da doppie quote. Il carattere null non viene aggiunto alla fine del secondo array sopra, perché non è una stringa ufficiale. Il terzo array è una stringa ufficiale. Il seguente codice mostra i valori minimi di abbonamento.
int arr [5] = 3, 4, 5, 6, 7;Per rendere la seconda definizione una stringa ufficiale, il personaggio null deve essere aggiunto come segue:
int arr [5] = 3, 4, 5, 6, 7;L'output dovrebbe ora essere,
9Senza la seconda "donna". Si noti che il pedice corrispondente per il secondo array è 6 e non 5 come lo era.
Valori letterali costanti
Per fermare qualsiasi personaggio nelle doppie citazioni assegnate a un identificatore di essere modificato, successivamente in basso nel programma, precedere la definizione con la parola riservata, const, come segue:
const char ident [] = "ti amo";Operazioni con i letterali di stringa
Operazioni di uguaglianza
Gli operatori di uguaglianza sono == e != . Quando vengono confrontate le variabili (identificatori) di due stringhe, sono i puntatori (indirizzi) dei letterali che finiscono per essere confrontati; Questo è sbagliato. Per confrontare le stringhe, i letterali devono essere confrontati, come nel seguente codice:
bool result = "donna" == "donna";L'output è 1 per vero. Il confronto viene eseguito in modo di. L'output del seguente codice è 0, per false.
bool result = "donna" != "donna";Operatori relazionali con letterali a stringa
Gli operatori relazionali non funzionano con i letterali delle stringhe.
Stringa grezza letterale
Una stringa grezza letterale, consente di visualizzare una stringa come digitato, ignorando le sequenze di fuga e rispettando le nuove linee. Considera il seguente codice:
char str [] = r "(abc \\ d efg hijL'output è:
ABC \\ d efg hijNel codice, la stringa grezza letterale inizia con R, seguito da "e ( . Finisce con) e ".
C ++ String Main String Tipi letterali
CHAR
Il tipo di char è il tipo C ++ originale e in genere memorizzerebbe un carattere in 8 bit.
char16_t
Questo immagazzina un personaggio in 16 bit.
char32_t
Questo memorizza un personaggio in 32 bit.
wchar_t
char16_t e char32_t sono caratteri ampi. wchar_t è un ampio carattere proprietario e definito dall'implementazione.
Conclusione
Un personaggio letterale è un singolo personaggio in singoli citazioni. Una sequenza di fuga è un personaggio che può anche essere in singoli citazioni. Una stringa letterale è una sequenza di caratteri in doppia citazione. Una stringa letterale è una matrice di caratteri che si concludono con \ 0. L'uguaglianza e gli operatori relazionali lavorano con i letterali dei personaggi. Gli operatori di uguaglianza lavorano con i letterali delle stringhe, ma gli operatori relazionali non funzionano con i letterali delle stringhe. Gli identificatori del personaggio possono essere utilizzati nei confronti, ma gli identificatori di stringhe non devono essere utilizzati nei confronti. Una stringa grezza letterale consente di visualizzare una stringa come digitato, ignorando le sequenze di fuga e rispettando le nuove linee.