Array String în C ++ - Accesați elementele din Array String - Alocare

Cuprins:

Anonim

Introducere în Array String în C ++

Există multe tipuri de date în C ++, cum ar fi număr întreg, float, caracter, șir. Tipul de date șir este un tablou de caractere care se termină cu un caracter nul ('\ 0') care indică sfârșitul tabloului sau șirului. C nu le-a avut ca atare tip de date șir, din cauza cărora a trebuit să formăm un tablou de caractere pentru a forma un șir. În C ++, avem șirul de date încorporat.

Exemplu de caracter: 'a' sau 'A'

Exemplu de șir (C ++): „engleză”

String: șir de caractere: String (0) = 'E'

String (1) = 'n'

String (2) = 'g'

String (3) = 'l'

String (4) = 'i'

String (5) = 's'

String (6) = 'h'

String (7) = '\ 0'

Șirurile pot fi declarate, scrise și tipărite direct în C ++. De asemenea, fiecare caracter dintr-un șir poate fi accesat folosind un index similar cu indexarea în tablou. În cazul șirului, când citim sub forma unui tablou de caractere folosind scanf (), acesta va opri șirul sau funcția de citire atunci când va găsi primul spațiu alb. Pentru a evita acest lucru se poate folosi funcția get (). Aceasta citește o linie întreagă și nu va mai citi doar atunci când utilizatorul apasă „Enter”.

String Array în C ++ o serie de șiruri multiple

String array sau Array of stringuri este o serie de mai multe șiruri. Aceasta poate fi declarată după cum urmează:

string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");

Pentru a tipări întregul șir de șiruri, pentru buclă se poate utiliza:

Cod:

for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)

ieşire:

Cum să accesați elementele din Array String?

Matricea de șiruri este similară cu un tablou bidimensional. Prima dimensiune sau index specifică indexul șirului de la matrice ca primul cuvânt / șir sau al doilea cuvânt / șir și așa mai departe. Întrucât a doua dimensiune sau index specifică caracterul din acest cuvânt / șir specific.

Pentru a explica cu un exemplu clar:

Animals(2)(1) = 'i'

În exemplul de mai sus, primul index „2” specifică că este a doua linie din tabloul: „Tiger”. Al doilea index „1” specifică că este a doua literă sau index 1 de la cuvântul „Tiger”. Folosind indexarea 2dimensională fiecare caracter din fiecare șir poate fi accesat cu ușurință.

Alocare sau definire Array String

Există diferite metode de alocare a unui șir de șiruri:

1. 2D Array of Char (care poate fi utilizat și în C)

Nume char (număr maxim de elemente) (dimensiunea maximă a fiecărui element)

char color (4) (8) = ("albastru", "roșu", "alb", "negru")

Cod:

int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Rezultat :

Aici, culoarea tabloului este de dimensiuni fixe, adică numărul de elemente este fixat și, de asemenea, este fixat numărul de caractere sau dimensiuni ale elementului. Numărul maxim de elemente care pot fi definite este de 4 și fiecare poate avea maximum 8 caractere nu mai mult de atât. Aceasta este bariera principală din tabloul 2d de caractere.

2. Array cu cuvântul cheie String (posibil numai în C ++)

Nume șir (număr maxim de elemente)

string color (4) = ("albastru", "roșu", "alb", "negru")

Cod:

int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)

Rezultat :

Aici este fixată o singură dimensiune atunci când o declaram ca șir de șiruri. Numai numărul de elemente este fixat. Mărimea elementului poate varia. Dar specificând a doua dimensiune, putem accesa sau afișa caracterul specific dintr-un șir respectiv.

3. Utilizarea vectorilor în C ++

Numele vectorului

culoare vectorială

Cod:

#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)
#include
#include
using namespace std;
int main()
(
vector color;
color.push_back("blue");
color.push_back("red");
color.push_back("white");
color.push_back("black");
for(int i = 0; i cout << color(i) << endl;
)
return 0;
)

ieşire:

Aici este alocată dinamic, memoria este alocată din grămadă. Dimensiunea nu este fixată. Poate crește sau scade în funcție de numărul de elemente. În cazul alocării dinamice a șirului de șiruri folosind comanda „nouă”, trebuie să deslocăm manual memoria alocată. Dar în cazul vectorului, acest lucru nu este necesar. Relocarea este posibilă în vector, în timp ce nu este posibilă în tabloul alocat dinamic.

4. Trecerea șirului de caractere într-o funcție

Stray Array poate fi trecut la o funcție similară cu How pass an Array.

Cod:

#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)

Rezultat :

Aici, trecem șirul string string ca parametru la o funcție „afișare” care tipărește cel de - al 3- lea element al tabloulului șiruri („pozitiv”).

5. Faceți din Array String la altul

Pentru a copia dintr-un Array String în altul, ar trebui să copiem fiecare element individual, dar întregul Array nu poate fi copiat la o singură fotografie.

Cod:

int main() (
string str(4) = ("Good", "Bad", "Positive", "Negative");
string s(4);
// s = str; -à This line gives error as the whole array cannot be copied at a single go
// It can be copied as shown below
for( int i=0; i<4; i++) (
s(i) = str(i);
)
for(int i=0; i<4; i++) (
cout << "The element " << i+1 << " of copied array = " << s(i) << " is same as
the corresponding element in main array which is " << str(i) << endl;
)
)

Ieșire de eroare:

ieşire:

Aici, când am încercat să copiem întregul șir de șiruri principale (str) într-un alt șir de șiruri, am primit o eroare (așa cum se arată în imaginea screenshot1), în timp ce atunci când am copiat-o element după element, str a fost copiat la s și am putut verifica acest lucru văzând a doua captură de ecran de ieșire.

Concluzie

Astfel, șirul este un tip de date care este un tablou de caractere și este prezent doar în C ++. În C, obișnuiam să declaram ca matrice de caractere. Gama de șiruri este un tablou format din mai multe șiruri. Când este declarat static sau dinamic, este de mărime fixă ​​și când este declarat sub formă de vector, dimensiunea nu este fixă. Fiecare element și caracter dintr-un element specific pot fi ușor accesate folosind indexarea șirului de șiruri.

Articole recomandate

Acesta este un ghid pentru Array String în C ++. Aici vom discuta despre cum să depășim elementul în Stray Array în C ++ și despre alocarea String Array în C ++. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Stray Array în Python
  2. StringBuffer în Java
  3. Funcții cu coarde Python
  4. Arătări în C ++
  5. Introducere în Array String în C #
  6. Top 11 caracteristici și avantaje ale C ++
  7. Top 8 Comparații de String vs StringBuilder
  8. Array Work în Unix cu sintaxa?