string array c implementation representation with examples
En strängmatris i C ++ är en strängmatris. I den här självstudien kommer vi att gräva i detaljerna om representation och implementering av strängarrayer i C ++:
Vi har sett matriser i C ++ i våra tidigare självstudier. Arrayer tillåter oss att deklarera dataelement av olika slag. Medan alla numeriska datatyper arrays är identiska i operationer och implementering, och arrays med strängdatatyp är olika.
bästa programvaran för kloning av hårddisk
I C ++ kan strängen representeras som en rad tecken eller med hjälp av strängklass som stöds av C ++. Varje sträng eller arrayelement avslutas med ett null-tecken. Att representera strängar med hjälp av en teckenmatris tas direkt från 'C' -språket eftersom det inte finns någon strängtyp i C.
=> Klicka här för gratis C ++ kurs.
Vad du kommer att lära dig:
Implementering av strängarrayer
I C ++ kan strängar representeras på tre sätt.
- Använda tvådimensionella karaktärsarrayer: Denna representation använder de tvådimensionella matriserna där varje element är skärningspunkten mellan ett rad- och kolumnnummer och representerar en sträng
- Använda strängnyckelord: Vi kan också använda strängnyckelordet C ++ för att deklarera och definiera strängmatriser.
- Använda STL-vektorer: Vi kan använda STL-vektorer där varje element i en vektor är en sträng.
Nu ska vi diskutera var och en av ovanstående metoder och även se programmeringsexemplen för varje representation.
Använda tvådimensionella karaktärsarrayer
Strängmatriser eller en rad strängar kan representeras med hjälp av en speciell form av tvådimensionella matriser. I den här representationen använder vi en tvådimensionell uppsättning typtecken för att representera en sträng.
Den första dimensionen anger antalet element, dvs. strängar i den matrisen, och den andra dimensionen anger den maximala längden för varje element i matrisen.
Så vi kan använda en allmän representation som visas nedan.
char “stringarrayname” (“number of strings”) (“maximum length of the string”)
Till exempel,överväga följande förklaring:
char string_array(10) (20);
Ovanstående deklaration förklarar en rad strängar med namnet 'string_array' som har 10 element och längden på varje element är inte mer än 20.
Vi kan deklarera och initiera en rad djur med hjälp av strängar på följande sätt:
char animals (5) (10) = {“Lion”, “Tiger”, “Deer”, “Ape”, “Kangaroo”};
Låt oss se ett programmeringsexempel som använder begreppet tvådimensionella karaktärsarrayer för att bättre förstå konceptet.
#include using namespace std; int main() { char strArray(5) (6) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Produktion:

I ovanstående program har vi förklarat en rad strängar som kallas strArray av storlek 5 med max längd för varje element som 10. I programmet initierar vi en for-loop för att visa varje element i arrayen. Observera att vi bara behöver komma åt matrisen med den första dimensionen för att visa elementet.
Enkel åtkomst till element är en av de största fördelarna med 2-D-matriser. De är verkligen enkla att programmera.
Den största nackdelen med denna typ av representation är att både måtten på matrisen, dvs. antalet element och den maximala längden på elementet, är fasta och kan inte ändras som vi vill.
För det andra anger vi den maximala längden på varje element som den andra dimensionen under deklarationen av matrisen. Om stränglängden anges som 100, och vi har alla element som är mindre långa, går minnet till spillo.
Använda sträng nyckelord
I detta använder vi nyckelordet ”string” i C ++ för att deklarera en rad strängar. Till skillnad från karaktärsarrangemang har vi här bara 1D-array. Den enda dimensionen anger antalet strängar i matrisen.
Den allmänna syntaxen för en rad strängdeklaration med hjälp av strängordet ges nedan:
string “array name” (“number of strings”);
Observera att vi inte anger den maximala längden på strängen här. Detta innebär att det inte finns någon begränsning för längden på arrayelementen.
Som ett exempel kan vi deklarera en rad färgnamn på följande sätt.
string colors(5);
Vi kan initialisera denna array vidare enligt nedan:
string colors(5) = {“Red”, “Green”, “Blue”, “Orange”, “Brown”};
Nedan följer ett C ++ - program för att förstå strängnyckelordet och dess användning i en rad strängar.
#include using namespace std; int main() { string numArray(5) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Produktion:

Vi har modifierat vårt tidigare teckenarrayprogram och demonstrerat användningen av strängord. Programmets resultat är detsamma, men hur det uppnås är annorlunda när vi definierar en rad strängar med hjälp av strängordet.
Observera att strängmatrisen med strängordet har en fördel där vi inte har några begränsningar för strängarnas längd i matrisen. Eftersom det inte finns någon begränsning slösar vi inte med minnesutrymme också.
På nackdelen har denna matris en fast storlek. Vi måste förklara storleken på matrisen i förväg.
Använda STL-vektorer
Vi kan också använda STL-vektorer för att deklarera och definiera dynamiska matriser. Således för att definiera en rad strängar kan vi ha en STL-vektor av typsträng.
Denna deklaration av en rad strängar med hjälp av vektor visas nedan:
vector “stringarray_Name”;
Med hänvisning till ovanstående deklaration kan vi förklara en vektor 'ämnen' på följande sätt:
vector mysubjects;
Observera att vi kan tilldela element till vektorn med 'push_back' -metoden eller någon annan STL-vektormetod.
Nedan följer ett programmeringsexempel som använder C ++ för att demonstrera användningen av STL-vektorn för att representera en rad strängar.
#include #include using namespace std; int main() { vector myNumbers; myNumbers.push_back('one'); myNumbers.push_back('two'); myNumbers.push_back('three'); myNumbers.push_back('four'); myNumbers.push_back('five'); cout<<'String array is as follows:'< Produktion:
hur man öppnar datfiler på windows

I ovanstående program har vi en STL-vektor myNumbers av typsträng. Därefter lägger vi till element i den här vektorn med hjälp av push_back-metoden och visar sedan vart och ett av elementen i vektorn.
Om vi ser hela STL-vektorn och strängmatrisen fungerar, ser vi att vi i det här fallet inte har en gräns för antalet element i matrisen eller den maximala längden för varje element. Vi ser att rad strängar som använder vektorer är helt dynamisk och kan reduceras eller ökas dynamiskt.
Hur väljer jag den representation som ska användas?
Nu när vi har sett alla tre representationer av strängmatriser kan vi dra slutsatsen att av alla tre representationerna är vektorrepresentationen den bästa eftersom den är dynamisk till sin natur.
Det beror på syftet och kraven för strängmatrisen. När vi har krav på att vi behöver en strängmatris med fast storlek och vi vet exakta data som kommer att gå in i en strängmatris, då kan vi gå till teckenmatris eller strängrepresentation.
När vi vill att strängmatrisen ska växa eller krympa dynamiskt kan vi tillgripa vektorrepresentation eftersom det hjälper oss att utveckla program genom att dynamiskt ändra matrisen.
Slutsats
Strängmatriser är speciella matriser med data som strängar. Detta betyder att varje element i matrisen är en sträng som avslutas med null-tecken.
Vi har diskuterat tre representationer av en strängmatris i detalj tillsammans med deras fördelar och nackdelar. Beroende på våra krav; vi kan använda vilken representation av strängmatrisen som passar vår implementering.
I våra efterföljande handledning fortsätter vi att utforska C ++ - strängar och C ++ - funktioner i detalj.
=> Läs igenom Easy C ++ Training Series.
Rekommenderad läsning
- Java Array Length Tutorial With Code Exempel
- Java String med String Buffer och String Builder Tutorial
- C # Stränghandledning - Strängmetoder med kodexempel
- Python-strängfunktioner
- C ++ Arrays med exempel
- Strängar i C ++ med exempel
- C # slumpmässigt nummer och C # slumpmässig stränggenerator med kodexempel
- Heapsortering i C ++ med exempel