String Array i C ++ - Få tilgang til elementene fra String Array - Tildeling

Innholdsfortegnelse:

Anonim

Introduksjon til String Array i C ++

Det er mange datatyper i C ++, som heltal, flyte, karakter, streng. Strengedatatypen er en gruppe med tegn som slutter med et nulltegn ('\ 0') som angir slutten på matrisen eller strengen. C hadde ikke dem som sådan datatypestrengen, på grunn av hvilken vi måtte danne et tegnsett for å danne en streng. I C ++ har vi den innebygde datatypestrengen.

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'

Streng (7) = '\ 0'

Strenger kan deklareres, skrives og skrives ut direkte i C ++. Du kan også få tilgang til hvert tegn i en streng ved hjelp av en indeks som ligner på indeksering i matrisen. Når det gjelder strengen, når vi leser i form av en karaktergruppe ved bruk av scanf (), vil den stoppe strengen eller lesefunksjonen når den finner det første hvite området. For å unngå at denne får () -funksjonen kan brukes. Dette leser en hel linje og slutter å lese bare når brukeren treffer 'Enter'.

String Array i C ++ en rekke flere strenger

Strengarray eller Array of strings er et utvalg av flere strenger. Dette kan deklareres som følger:

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

For å skrive ut hele strengen, kan for loop brukes:

Kode:

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

Produksjon:

Hvordan få tilgang til elementene fra strengarrayen?

Oppstillingen av strenger ligner på en todimensjonal matrise. Den første dimensjonen eller indeksen spesifiserer indeksen til streng fra det matrikklignende 1. ord / streng eller 2. ord / streng og så videre. Mens den andre dimensjonen eller indeksen spesifiserer hvilket tegn i det bestemte ordet / strengen.

For å forklare det med et tydelig eksempel:

Animals(2)(1) = 'i'

I eksemplet over spesifiserer den første indeksen '2' den er den andre strengen fra matrisen: "Tiger". Den andre indeksen '1' spesifiserer at den er den andre bokstaven eller indeksen 1 fra ordet "Tiger". Ved å bruke den todimensjonale indeksen kan du enkelt få tilgang til hvert tegn fra hver streng.

Tildeling eller definering av strengarray

Det er forskjellige metoder for tildeling av en rekke strenger:

1. 2D Array of Char (som også kan brukes i C)

char Navn (maks antall elementer) (maks størrelse på hvert element)

røye farge (4) (8) = ("blå", "rød", "hvit", "svart")

Kode:

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

Utgang :

Her er matrisefargen av fast størrelse, det vil si antall elementer er fast, og antallet tegn eller størrelser på elementet er også fast. Det maksimale antallet elementer som kan defineres er 4 og hver kan ha maksimalt 8 tegn ikke mer enn det. Dette er den viktigste barrieren i arrayen for 2d-tegn.

2. Array med nøkkelord String (bare mulig i C ++)

streng Navn (maks antall elementer)

strengfarge (4) = ("blå", "rød", "hvit", "svart")

Kode:

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

Utgang :

Her er det bare en dimensjon som er fast når vi erklærer det som en strengeoppstilling. Bare antall elementer er fast. Størrelsen på elementet kan variere. Men med å spesifisere den andre dimensjonen kan vi få tilgang til eller vise det spesifikke tegnet fra en respektive streng.

3. Bruke vektorer i C ++

vektor Navn

vektor farge

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;
)

Produksjon:

Her er det dynamisk allokert, hukommelse blir allokert fra haugen. Størrelsen er ikke fast. Det kan øke eller redusere i antall elementer. I tilfelle dynamisk allokering av strengen med kommandoen “nytt”, må vi manuelt dele ut det tildelte minnet. Men for vektor er dette ikke nødvendig. Omfordeling er mulig i vektor, mens det ikke er mulig i den dynamisk tildelte matrisen.

4. Passing String Array i en funksjon

String Array kan sendes til en funksjon som ligner på How we pass a 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);
)

Utgang :

Her overfører vi strengen array som en parameter til en funksjon "display" som skriver ut det tredje elementet i strengen array ("Positive").

5. Å takle fra String Array til en annen

For å kopiere fra en streng-array til en annen, bør vi kopiere hvert element hver for seg, men hele arrayen kan ikke kopieres på ett skudd.

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;
)
)

Feilutgang:

Produksjon:

Når vi prøvde å kopiere hele hovedstreng-arrayen (str) til en annen streng-array (er) fikk vi en feil (som vist på skjermdump1), mens når vi kopierte det element for element, ble str kopiert til s og vi kunne bekrefte dette ved å se det andre skjermbildet for utdata.

Konklusjon

Dermed er strengen en datatype som er en rekke tegn, og den er bare til stede i C ++. I C pleide vi å erklære som et tegnsett. Utvalget av strenger er et utvalg som består av mange strenger. Når den er erklært statisk eller dynamisk, er den av fast størrelse, og når den deklareres i form av en vektor, er størrelsen ikke fast. Hvert element og tegnet i et spesifikt element kan lett nås ved å indeksere strengstrengen.

Anbefalte artikler

Dette er en guide til String Array i C ++. Her diskuterer vi hvordan du overskyt element i String Array i C ++, og tildeling av String Array i C ++. Du kan også gå gjennom andre relaterte artikler for å lære mer-

  1. String Array i Python
  2. StringBuffer i Java
  3. Python-strengfunksjoner
  4. Arrays i C ++
  5. Introduksjon til String Array i C #
  6. Topp 11 funksjoner og fordeler med C ++
  7. Topp 8 sammenligninger av String vs StringBuilder
  8. Array Jobbe i Unix med Syntax?