string
a fost prezentată pe scurt într-un capitol anterior. Este o clasă foarte puternică de manipulare și prelucrare a șirurilor de caractere. Totuși, deși string-urile sunt secvențe de caractere, le putem reprezenta și va tablouri unidimensionale cu elemente de tip caracter.
|
|
char
. El poate fi reprezentat astfel:"Hello"
sau "Merry Christmas"
în foo
, deoarece oricare dintre ele reprezintă o secvență de până la 20 de caractere.'\0'
(backslash, zero).char
denumit foo
poate fi reprezentat ca memorând secvența de caractere "Hello"
and "Merry Christmas"
as:'\0'
) pentru a indica sfârșitul secvenței. Panourile de culoare gri reprezintă elemente de tip char
cu valori nedeterminate.
|
|
char
inițializat cu caracterele care formează cuvântul "Hello"
plus un caracter nul '\0'
la sfârșit."
). De exemplu:
|
|
"
) sunt literali constanți. Și tipul lor este, de fapt, un tablou de caractere terminat cu caracterul nul. Aceasta înseamnă că literalii string au întotdeauna un caracter nul adăugat la sfârșit ('\0'
).cuvant
poate fi inițializat cu o secvență de caractere terminată cu un caracter nul cu ajutorul uneia dintre următoarele două propoziții:
|
|
cuvant
este declarat ca având dimensiunea de 6 elemente de tip char
: 5 caractere care compun cuvântul "Hello"
, plus caracterul nul ('\0'
) de la final, care specifică sfârșitul secvenței și, la fel, în al doilea caz la folosirea ghilimelelor, când este adăugat automat.
|
|
|
|
|
|
string
), folosirea tablourilor simple de secvențe terminate cu caracterul nul (string-uri C) este încă un mod natural de reprezentare; de fapt, literalii string produc secvențe terminate cu caracterul nul și nu obiecte string
.cin
și cout
suportă direct secențe terminate cu caracterul nul, permițând extragerea lor directă din cin
sau inserarea în cout
, exact cum se întâmplă și cu string-uri. De exemplu:
|
|
Cum te numesti? Homer Unde locuiesti? Greece Hello, Homer din Greece! |
cin
și cout
, dar există o mare diferență în privința declarațiilor: tablourile au dimensiune fixă ce trebuie precizată implicit sau explicit în declarație; intrebare1
are exact 20 de caractere (inclusiv caracterul nul de terminare) și raspuns1
are dimensiunea de 80 de caractere; când șirurile sunt pur și simplu string-uri, nu se specifică nici o dimensiune. Aceasta se întâmplă datorită faptului că string-urile au dimensiune dinamică determinată în timpul executării programului, față de tablouri la care dimensiunea este determinată la compilare, înainte ca programul să se execute.string
c_str
sau data
:
|
|
c_str
și data
din string
sunt echivalente)Previous: Tablouri | Index | Next: Pointeri |