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)Tablouri | Index | Pointeri |