Come usare letterale stringa C ++

Come usare letterale stringa C ++
La tastiera del computer ha caratteri stampati su di essi. Quando si preme un tasto, vedi il carattere sullo schermo. Nota: lo spazio è anche un personaggio. Una stringa letterale è una sequenza di caratteri. Questo articolo spiega come utilizzare i letterali delle stringhe C ++. Dovresti sapere su array e puntatori C ++ per capire questo articolo.

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';
IDIT = 'y';

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 []
= "Siamo il mondo"; char ident4 [] = "Hello World!";

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 \ v

Ogni 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.

  • \ ': è usato come un singolo personaggio di citazione, all'interno di citazioni singole.
  • \ ": È usato come carattere a doppia citazione, all'interno di un letterale.
  • \? : Da ? è un personaggio riservato, dovrebbe essere sfuggito in un letterale.
  • \\: la retromarcia dovrebbe essere fuggita come personaggio o in una stringa letterale, in modo da non causare un altro significato.
  • \ A: suona una campana di allarme una volta, se usato come carattere o all'interno di una stringa letterale.
  • \ B: risultati come backspace nel display all'interno di una stringa letterale, togliendo il personaggio precedente.
  • \ f: fa alimentare la pagina successiva alla stampante se utilizzata come carattere o all'interno di un letterale.
  • \ R: restituisce il cursore, dove deve essere stampato il carattere successivo, ma all'interno della linea corrente.
  • \ n: restituisce il cursore all'inizio della riga successiva o solo alla riga successiva, a seconda del sistema operativo.
  • \ T: crea una scheda orizzontale.
  • \ V: crea una scheda verticale.

Operazioni con personaggi

Concatenazione

Alla definizione, i letterali a due stringhe possono essere uniti allo spazio come segue:

char identi [] = "ABC" "def";
cout << ident << "\n";

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"
"ghi";
cout << ident << "\n";

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';
cout << result << "\n";

== mezzi uguali, mentre = mezzi assegnati e non uguali. L'output è 1 per vero. Prendere in considerazione,

bool result = 'b' == 'b';
cout << result << "\n";

L'output è 0 per false. Prendere in considerazione,

bool result = 'b' == 'c';
cout << result << "\n";

L'output è 0 per false. Prendere in considerazione,

bool result = 'b' != 'B';
cout << result << "\n";

!= significa non eguali, mentre = significa assegnato e non uguale. L'output è 0 per false. Prendere in considerazione,

bool result = 'b' != 'b';
cout << result << "\n";

L'output è 1 per vero. Prendere in considerazione,

bool result = 'b' != 'c';
cout << result << "\n";

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;
char str [] = 'w', 'o', 'm', 'a', 'n';
Char Stri [] = "Woman";

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;
char str [] = 'w', 'o', 'm', 'a', 'n';
Char Stri [] = "Woman";
arr [3] = 9;
str [3] = 'e';
Stri [3] = 'E';
cout << arr[3] << '\n';
cout << str << '\n';
cout << stri << '\n';

L'output è:

9
donne donne
donne

Si 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;
char str [5] = 'w', 'o', 'm', 'a', 'n';
Char Stri [6] = "donna";

Per rendere la seconda definizione una stringa ufficiale, il personaggio null deve essere aggiunto come segue:

int arr [5] = 3, 4, 5, 6, 7;
char str [6] = 'w', 'o', 'm', 'a', 'n', '\ 0';
Char Stri [6] = "donna";

L'output dovrebbe ora essere,

9
donne
donne

Senza 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";
cout << result << '\n';

L'output è 1 per vero. Il confronto viene eseguito in modo di. L'output del seguente codice è 0, per false.

bool result = "donna" != "donna";
cout << result << '\n';

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 hij
klmn \ n "'opq
prima) ";
cout << str << '\n';

L'output è:

ABC \\ d efg hij
klmn \ n "'opq
primo

Nel 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.