Inleiding tot String Array in C ++

Er zijn veel gegevenstypen in C ++, zoals integer, float, character, string. Het gegevenstype van de reeks is een reeks tekens die eindigen met een null-teken ('\ 0') dat het einde van de reeks of reeks aangeeft. C had ze niet als zodanig het gegevenstype string, waardoor we een character array moesten vormen om een ​​string te vormen. In C ++ hebben we de ingebouwde gegevenstypereeks.

Voorbeeld van teken: 'a' of 'A'

Voorbeeld van string (C ++): "English"

String: array of character: String (0) = 'E'

String (1) = 'n'

String (2) = 'g'

String (3) = 'l'

String (4) = 'i'

String (5) = 's'

String (6) = 'h'

String (7) = '\ 0'

Strings kunnen rechtstreeks in C ++ worden gedeclareerd, geschreven en afgedrukt. Elk teken in een tekenreeks kan ook worden geopend met behulp van een index die vergelijkbaar is met indexering in de array. In het geval van de tekenreeks, wanneer we lezen in de vorm van een tekenreeks met behulp van scanf (), stopt deze de tekenreeks of de leesfunctie wanneer de eerste witte ruimte wordt gevonden. Om dit te voorkomen kan de functie gets () worden gebruikt. Dit leest een hele regel en stopt alleen met lezen wanneer de gebruiker op 'Enter' drukt.

String Array in C ++ een reeks van meerdere strings

Stringarray of Array of strings is een array met meerdere strings. Dit kan als volgt worden verklaard:

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

Om de hele reeks array af te drukken, kan voor lus worden gebruikt:

Code:

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

Output:

Hoe toegang te krijgen tot de elementen van de String Array?

De reeks strings is vergelijkbaar met een tweedimensionale reeks. De eerste dimensie of index geeft de index van de string aan van het matrixachtige eerste woord / string of het tweede woord / string enzovoort. Terwijl de tweede dimensie of index aangeeft welk teken in dat specifieke woord / die reeks.

Om het uit te leggen met een duidelijk voorbeeld:

Animals(2)(1) = 'i'

In het bovenstaande voorbeeld geeft de eerste index '2' aan dat dit de 2de string uit de array is: "Tiger". De tweede index '1' geeft aan dat het de tweede letter of index 1 van het woord 'Tiger' is. Met behulp van de tweedimensionale indexering is elk teken uit elke string gemakkelijk toegankelijk.

Stringmatrix toewijzen of definiëren

Er zijn verschillende toewijzingsmethoden voor een reeks strings:

1. 2D Array of Char (die ook in C kan worden gebruikt)

char Naam (max aantal elementen) (max grootte van elk element)

char color (4) (8) = ("blauw", "rood", "wit", "zwart")

Code:

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

Uitgang :

Hier heeft de matrixkleur een vaste grootte, dat wil zeggen dat het aantal elementen vast is en ook het aantal tekens of groottes van het element is ook vast. Het maximale aantal elementen dat kan worden gedefinieerd, is 4 en elk mag maximaal 8 tekens bevatten. Dit is de belangrijkste barrière in de 2D-array met tekens.

2. Matrix met trefwoord String (alleen mogelijk in C ++)

tekenreeksnaam (max aantal elementen)

tekenreekskleur (4) = ("blauw", "rood", "wit", "zwart")

Code:

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

Uitgang :

Hier is slechts één dimensie vastgelegd wanneer we deze declareren als een stringmatrix. Alleen het aantal elementen is vast. De grootte van het element kan variëren. Maar door de tweede dimensie op te geven, kunnen we toegang krijgen tot het specifieke teken van een respectieve tekenreeks of dit weergeven.

3. Vectoren gebruiken in C ++

vector naam

vector kleur

Code:

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

Output:

Hier wordt het dynamisch toegewezen, geheugen wordt toegewezen vanuit de heap. De grootte staat niet vast. Het kan toenemen of afnemen volgens het aantal elementen. In het geval van het dynamisch toewijzen van een stringarray met behulp van de opdracht "nieuw", moeten we het toegewezen geheugen handmatig dealloceren. Maar in het geval van vector is dit niet nodig. Herallocatie is mogelijk in vector, terwijl dit niet mogelijk is in de dynamisch toegewezen array.

4. Passing String Array in een functie

String Array kan worden doorgegeven aan een functie die lijkt op Hoe we een array doorgeven.

Code:

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

Uitgang :

Hier geven we de stringarray str als parameter door aan een functie "display" die het derde element van de stringarray afdrukt ("Positief").

5. Omgaan van String Array naar een andere

Om van een String-array naar een ander te kopiëren, moeten we elk element afzonderlijk kopiëren, maar de hele array kan niet in één keer worden gekopieerd.

Code:

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

Foutoutput:

Output:

Hier toen we probeerden de hele hoofdserie-array (str) naar een andere string-array (s) te kopiëren, kregen we een fout (zoals weergegeven in screenshot1), terwijl toen we het element per element kopieerden, str naar s werd gekopieerd en we dit konden verifiëren door de tweede output screenshot te zien.

Conclusie

De tekenreeks is dus een gegevenstype dat bestaat uit een reeks tekens en is alleen aanwezig in C ++. In C declareerden we altijd als een karakterreeks. De reeks strings is een reeks bestaande uit vele strings. Wanneer het statisch of dynamisch wordt aangegeven, heeft het een vaste grootte en wanneer het wordt gedeclareerd in de vorm van een vector, is de grootte niet vast. Elk element en het teken in een specifiek element zijn eenvoudig toegankelijk met behulp van een indexering van een reeks reeksen.

Aanbevolen artikelen

Dit is een gids voor String Array in C ++. Hier bespreken we hoe overtollig element in String Array in C ++ en toewijzing van String Array in C ++. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. String Array in Python
  2. StringBuffer in Java
  3. Python String-functies
  4. Arrays in C ++
  5. Introductie van String Array in C #
  6. Top 11 kenmerken en voordelen van C ++
  7. Top 8 vergelijkingen van String versus StringBuilder
  8. Array Work in Unix met Syntax?