string array c implementation representation with examples
String Array v C ++ je pole strún. V tomto výučbe sa budeme venovať podrobnostiam reprezentácie a implementácie reťazcov v C ++:
Polia v C ++ sme videli v našich starších tutoriáloch. Polia nám umožňujú deklarovať dátové prvky rôznych typov. Zatiaľ čo polia všetkých číselných údajových typov sú v prevádzke a implementácii identické a polia s dátovým typom reťazca sú odlišné.
nástroje na maskovanie údajov pre server SQL
V C ++ môže byť reťazec reprezentovaný ako pole znakov alebo pomocou triedy reťazcov, ktorá je podporovaná v C ++. Každý reťazec alebo prvok poľa je ukončený nulovým znakom. Reprezentácia reťazcov pomocou znakového poľa je priamo prevzatá z jazyka „C“, pretože v jazyku C. neexistuje žiadny typ reťazca.
=> Kliknutím sem získate bezplatný kurz C ++.
Čo sa dozviete:
Implementácia reťazcových polí
V C ++ môžu byť reťazce reprezentované tromi spôsobmi.
- Používanie dvojrozmerných polí znakov: Toto znázornenie používa dvojrozmerné polia, kde každý prvok je priesečníkom čísla riadku a stĺpca a predstavuje reťazec.
- Používanie reťazcového kľúčového slova: Môžeme tiež použiť kľúčové slovo string v C ++ na vyhlásenie a definovanie reťazcových polí.
- Používanie vektorov STL: Môžeme použiť STL vektory, kde každý prvok vektora je reťazec.
Teraz poďme diskutovať o každej z vyššie uvedených metód a pozrime sa tiež na príklady programovania pre každú reprezentáciu.
Používanie dvojrozmerných polí znakov
Reťazcové polia alebo pole reťazcov je možné znázorniť pomocou špeciálnej formy dvojrozmerných polí. V tomto znázornení používame na reprezentáciu reťazca dvojrozmerné pole typových znakov.
Prvá dimenzia určuje počet prvkov, t. J. Reťazcov v tomto poli, a druhá dimenzia určuje maximálnu dĺžku každého prvku v poli.
Môžeme teda použiť všeobecné znázornenie, ako je uvedené nižšie.
char “stringarrayname” (“number of strings”) (“maximum length of the string”)
Napríklad,zvážte nasledujúce vyhlásenie:
char string_array(10) (20);
Vyššie uvedená deklarácia deklaruje pole reťazcov s názvom „string_array“, ktoré má 10 prvkov a dĺžka každého prvku nie je väčšia ako 20.
Množinu zvierat môžeme deklarovať a inicializovať pomocou reťazcov nasledujúcim spôsobom:
char animals (5) (10) = {“Lion”, “Tiger”, “Deer”, “Ape”, “Kangaroo”};
Pozrime sa na príklad programovania, ktorý na lepšie pochopenie pojmu využíva koncept dvojrozmerných polí znakov.
#include using namespace std; int main() { char strArray(5) (6) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Výkon:

Vo vyššie uvedenom programe sme deklarovali pole reťazcov s názvom strArray o veľkosti 5 s maximálnou dĺžkou každého prvku ako 10. V programe inicializujeme slučku for na zobrazenie každého prvku poľa. Všimnite si, že na zobrazenie prvku potrebujeme iba prístup do poľa pomocou prvej dimenzie.
Ľahký prístup k prvkom je jednou z hlavných výhod 2-D polí. Programovanie je skutočne jednoduché.
Hlavnou nevýhodou tohto typu znázornenia je, že rozmery poľa, tj. Počet prvkov, ako aj maximálna dĺžka prvku, sú pevné a nemožno ich meniť, ako chceme.
Po druhé, pri deklarácii poľa zadáme maximálnu dĺžku každého prvku ako druhú dimenziu. Ak je dĺžka reťazca zadaná ako 100 a máme všetky prvky, ktoré sú kratšie, potom je pamäť zbytočná.
Pomocou reťazca Kľúčové slovo
V tomto používame kľúčové slovo ‘string’ v C ++ na deklarovanie poľa reťazcov. Na rozdiel od polí znakov tu máme iba 1D pole. Jediný rozmer určuje počet reťazcov v poli.
Všeobecná syntax pre deklaráciu poľa reťazcov pomocou kľúčového slova string je uvedená nižšie:
string “array name” (“number of strings”);
Upozorňujeme, že tu neuvádzame maximálnu dĺžku reťazca. To znamená, že neexistuje nijaké obmedzenie týkajúce sa dĺžky prvkov poľa.
Ako príklad môžeme deklarovať pole názvov farieb nasledujúcim spôsobom.
string colors(5);
Toto pole môžeme ďalej inicializovať, ako je uvedené nižšie:
string colors(5) = {“Red”, “Green”, “Blue”, “Orange”, “Brown”};
Nižšie je uvedený program v C ++ na pochopenie kľúčového slova string a jeho použitia v rade reťazcov.
#include using namespace std; int main() { string numArray(5) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Výkon:

Upravili sme náš predchádzajúci program znakových polí a demonštrovali sme použitie kľúčového slova string. Výstup programu je rovnaký, ale spôsob, akým sa dosahuje, sa líši, pretože pomocou reťazcového kľúčového slova definujeme pole reťazcov.
Upozorňujeme, že pole reťazcov pomocou kľúčového slova string má výhodu, v ktorej nemáme nijaké obmedzenia týkajúce sa dĺžky reťazcov v poli. Pretože neexistuje žiadne obmedzenie, nestrácame tiež pamäťový priestor.
Nevýhodou je, že toto pole má pevnú veľkosť. Najprv musíme deklarovať veľkosť poľa.
Používanie vektorov STL
Na deklarovanie a definovanie dynamických polí môžeme použiť aj vektory STL. Aby sme teda mohli definovať pole reťazcov, môžeme mať vektor STL typu string.
Táto deklarácia poľa reťazcov používajúcich vektor je uvedená nižšie:
vector “stringarray_Name”;
S odvolaním sa na vyššie uvedenú deklaráciu môžeme vektorové „subjekty“ vyhlásiť nasledujúcim spôsobom:
vector mysubjects;
Všimnite si, že môžeme vektoru priradiť prvky pomocou metódy „push_back“ alebo akýchkoľvek iných vektorových metód STL.
Ďalej je uvedený príklad programovania používajúci C ++ na demonštráciu použitia vektora STL na predstavenie poľa reťazcov.
#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:'< Výkon:

Vo vyššie uvedenom programe máme vektor STL myNumbers typového reťazca. Ďalej do tohto vektora pridáme prvky pomocou metódy push_back a potom zobrazíme každý z prvkov vektora.
aký je bezpečnostný kľúč na bezdrôtovom smerovači
Ak vidíme celú prácu vektora STL a poľa reťazcov, zistíme, že v tomto prípade nemáme obmedzenie počtu prvkov v poli ani maximálnu dĺžku každého prvku. Vidíme, že pole reťazcov využívajúcich vektory je úplne dynamické a dá sa dynamicky zmenšovať alebo zväčšovať.
Ako zvoliť znázornenie, ktoré sa má použiť?
Teraz, keď sme videli všetky tri reprezentácie reťazcových polí, môžeme dospieť k záveru, že zo všetkých troch reprezentácií je vektorová reprezentácia najlepšia, pretože má dynamickú povahu.
Závisí to od účelu a požiadaviek reťazcového poľa. Keď máme požiadavku, že potrebujeme reťazcové pole pevnej veľkosti, a poznáme presné údaje, ktoré sa dostanú do reťazcového poľa, môžeme ísť na znakové pole alebo reťazcovú reprezentáciu.
Keď chceme, aby sa reťazcové pole dynamicky zväčšovalo alebo zmenšovalo, môžeme sa uchýliť k vektorovej reprezentácii, pretože nám pomôže pri vývoji programov dynamickou zmenou poľa.
Záver
Reťazcové polia sú špeciálne polia, ktoré majú dáta ako reťazce. To znamená, že každý prvok poľa je reťazec ukončený nulovým znakom.
Podrobne sme diskutovali o troch reprezentáciách reťazcového poľa spolu s ich kladmi a zápormi. Podľa našich požiadaviek; môžeme použiť ľubovoľné znázornenie reťazcového poľa, ktoré vyhovuje našej implementácii.
V našich ďalších tutoriáloch budeme pokračovať v podrobnom skúmaní reťazcov C ++ a funkcií C ++.
=> Prečítajte si sériu Easy C ++ Training Series.
Odporúčané čítanie
- Výukový program Java Array Length s príkladmi kódu
- Výukový program Java String s programom String Buffer a String Builder
- C # String Tutorial - Metódy reťazcov s príkladmi kódu
- Funkcie reťazca Python
- Polia C ++ s príkladmi
- Reťazce v C ++ s príkladmi
- Generátor náhodných čísel C # a generátor náhodných reťazcov C # s príkladmi kódu
- Hromadné triedenie v C ++ s príkladmi