Introduktion til String Array i C ++
Der er mange datatyper i C ++, som heltal, float, karakter, streng. Strengedatatypen er en matrix med tegn, der slutter med et nulltegn ('\ 0'), der angiver slutningen af arrayen eller strengen. C havde ikke dem som sådan datatypestrengen, på grund af hvilken vi var nødt til at danne et tegnsæt for at danne en streng. I C ++ har vi den indbyggede datatypestreng.
Eksempel på karakter: 'a' eller 'A'
Eksempel på streng (C ++): “Engelsk”
String: array of character: String (0) = 'E'
Streng (1) = 'n'
Streng (2) = 'g'
Streng (3) = 'l'
Streng (4) = 'i'
Streng (5) = 's'
Streng (6) = 'h'
String (7) = '\ 0'
Strenge kan deklareres, skrives og udskrives direkte i C ++. Der kan også fås adgang til hvert tegn i en streng ved hjælp af et indeks, der ligner indeksering i matrixen. Når det gælder strengen, når vi læser i form af en karaktergruppe ved hjælp af scanf (), stopper den strengen eller læse-funktionen, når den finder det første hvide rum. For at undgå, at denne får () -funktion kan bruges. Dette læser en hel linje og stopper kun med at læse, når brugeren rammer 'Enter'.
String Array i C ++ en matrix med flere strenge
String array eller Array of strings er en matrix af flere strenge. Dette kan erklæres som følger:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
For at udskrive hele strengen array kan for loop anvendes:
Kode:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Produktion:
Sådan får du adgang til elementerne fra strengarray?
Arrayet af strenge svarer til et 2-dimensionelt array. Den første dimension eller indeks specificerer strengets indeks fra det matrixlignende 1. ord / streng eller 2. ord / streng osv. Mens den anden dimension eller indeks specificerer hvilken karakter i det specifikke ord / streng.
For at forklare det med et klart eksempel:
Animals(2)(1) = 'i'
I ovenstående eksempel specificerer det første indeks '2' det er den 2. streng fra matrixen: “Tiger”. Det andet indeks '1' specificerer, at det er det andet bogstav eller indeks 1 fra ordet "Tiger". Ved hjælp af den 2-dimensionelle indeksering kan man let få adgang til hvert tegn fra hver streng.
Tildeling eller definition af strengarray
Der er forskellige metoder til tildeling af en række strenge:
1. 2D Array of Char (som også kan bruges i C)
char Navn (maks. antal elementer) (maks. størrelse på hvert element)
char farve (4) (8) = ("blå", "rød", "hvid", "sort")
Kode:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Output :
Her er arrayfarven af fast størrelse, dvs. antallet af elementer er fast, og antallet af tegn eller størrelser på elementet er også fast. Det maksimale antal elementer, der kan defineres, er 4, og hver kan have et maksimum på 8 tegn ikke mere end det. Dette er den største barriere i arrayet med 2d-tegn.
2. Array med nøgleordstreng (kun muligt i C ++)
streng Navn (maks. antal elementer)
strengfarve (4) = ("blå", "rød", "hvid", "sort")
Kode:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Output :
Her er kun en dimension rettet, når vi erklærer det som et strenge array. Kun antallet af elementer er fast. Størrelsen på elementet kan variere. Men når du specificerer den anden dimension, kan vi få adgang til eller vise det specifikke tegn fra en respektive streng.
3. Brug af vektorer i C ++
vektor Navn
vektor farve
Kode:
#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;
)
Produktion:
Her er det dynamisk allokeret, hukommelse tildeles fra dyngen. Størrelsen er ikke fast. Det kan øges eller formindskes pr. Antal elementer. I tilfælde af dynamisk allokering af strenge array ved hjælp af kommandoen “nyt”, er vi nødt til manuelt at omfordele den tildelte hukommelse. Men i tilfælde af vektor er dette ikke nødvendigt. Omfordeling er mulig i vektor, mens det ikke er muligt i den dynamisk allokerede matrix.
4. Videresendelse af strenge array i en funktion
String Array kan overføres til en funktion, der ligner Hvordan vi passerer en array.
Kode:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Output :
Her overfører vi strenge array str som en parameter til en funktion "display", der udskriver det tredje element i streng array ("Positive").
5. Håndtering fra streng Array til en anden
For at kopiere fra en strengarray til en anden, skal vi kopiere hvert element individuelt, men hele arrayet kan ikke kopieres på et enkelt skud.
Kode:
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;
)
)
Fejloutput:
Produktion:
Her, da vi forsøgte at kopiere hele hovedstrengen array (str) til en anden streng array (r) fik vi en fejl (som vist på screenshot1), mens når vi kopierede det element for element, blev str kopieret til s og vi kunne verificere dette ved at se det andet output-skærmbillede.
Konklusion
Således er strengen en datatype, der er en matrix med tegn, og den er kun til stede i C ++. I C plejede vi at erklære som et karakter array. Matrixen af strenge er en matrix bestående af mange strenge. Når det erklæres statisk eller dynamisk, er det af fast størrelse, og når det deklareres i form af en vektor, er størrelsen ikke fast. Hvert element og tegnet i et specifikt element kan let fås ved hjælp af indeksering af strenge array.
Anbefalede artikler
Dette er en guide til String Array i C ++. Her diskuterer vi, hvordan overskydende element i String Array i C ++, og allokering af String Array i C ++. Du kan også gennemgå vores andre relaterede artikler for at lære mere-
- String Array i Python
- StringBuffer i Java
- Python-strengfunktioner
- Arrays i C ++
- Introduktion til strengarray i C #
- Top 11 funktioner og fordele ved C ++
- Top 8 sammenligninger af String vs StringBuilder
- Array arbejde i Unix med syntaks?