Úvod do String Array v C ++
V jazyku C ++ existuje veľa typov údajov, napríklad celé číslo, float, character, string. Dátový typ reťazca je pole znakov končiace nulovým znakom ('\ 0'), ktoré označuje koniec poľa alebo reťazca. C ich nemal ako taký reťazec typov údajov, kvôli čomu sme museli vytvoriť reťazec znakov, aby sme vytvorili reťazec. V jazyku C ++ máme zabudovaný reťazec typu údajov.
Príklad znaku: „a“ alebo „A“
Príklad reťazca (C ++): „angličtina“
Reťazec: pole znakov: String (0) = 'E'
Reťazec (1) = 'n'
Reťazec (2) = 'g'
Reťazec (3) = 'l'
String (4) = 'i'
String (5) = 's'
String (6) = 'h'
String (7) = '\ 0'
Reťazce môžu byť deklarované, napísané a vytlačené priamo v C ++. Ku každému znaku v reťazci sa dá pristupovať aj pomocou indexu podobného indexovaniu v poli. V prípade reťazca, keď čítame vo forme poľa znakov pomocou funkcie scanf (), zastaví reťazec alebo funkciu čítania, keď nájde prvé medzeru. Aby ste tomu zabránili, je možné použiť funkciu get (). Číta celý riadok a prestane čítať, len keď používateľ stlačí 'Enter'.
String Array v C ++ je rad viacerých reťazcov
Pole reťazcov alebo Pole reťazcov je pole viacerých reťazcov. Toto možno vyhlásiť takto:
string Animals(4) = ("Elephant", "Fox", "Lion", "Tiger");
Ak chcete tlačiť celé pole reťazcov, môžete použiť slučku:
kód:
for(int i = 0; i<4; i++) (
cout << Animals(i) << endl;
)
Výkon:
Ako získať prístup k prvkom zo strunového poľa?
Pole reťazcov je podobné dvojrozmernému poli. Prvá dimenzia alebo index určuje index reťazca z prvého slova / reťazca podobného matici alebo druhého slova / reťazca atď. Keďže druhá dimenzia alebo index určuje, ktorý znak v tomto konkrétnom slove / reťazci.
Vysvetlite to jasným príkladom:
Animals(2)(1) = 'i'
Vo vyššie uvedenom príklade prvý index „2“ určuje, že sa jedná o druhý reťazec z poľa: „Tiger“. Druhý index „1“ špecifikuje, že ide o druhé písmeno alebo index 1 zo slova „Tiger“. Pomocou dvojrozmerného indexovania je možné ľahko získať prístup ku každému znaku z každého reťazca.
Alokácia alebo definovanie reťazcového poľa
Existujú rôzne metódy alokácie radu reťazcov:
1. 2D pole Char (ktoré sa dá použiť aj v C)
char Názov (maximálny počet prvkov) (maximálna veľkosť každého prvku)
farba znaku (4) (8) = („modrá“, „červená“, „biela“, „čierna“)
kód:
int main() (
char color(4)(8) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Výstup :
Tu má farba poľa pevnú veľkosť, to znamená, že počet prvkov je pevne stanovený a tiež počet znakov alebo veľkostí prvku je tiež pevne stanovený. Maximálny počet prvkov, ktoré je možné definovať, sú 4 a každý z nich môže mať najviac 8 znakov. Toto je hlavná prekážka v poli znakov 2d.
2. Pole s kľúčovým slovom String (možné iba v C ++)
názov reťazca (maximálny počet prvkov)
farba šnúry (4) = („modrá“, „červená“, „biela“, „čierna“)
kód:
int main() (
string color(4) = (“blue”, “red”, “white”, “black”);
for(int i = 0; i<4; i++) (
cout << color(i) << endl;
)
)
Výstup :
Tu je pevná iba jedna dimenzia, keď ju deklarujeme ako reťazec. Stanovený je iba počet prvkov. Veľkosť prvku sa môže líšiť. Ale zadaním druhej dimenzie môžeme získať prístup alebo zobraziť konkrétny znak z príslušného reťazca.
3. Použitie vektorov v C ++
vektorové meno
vektorová farba
kód:
#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;
)
Výkon:
Tu je dynamicky alokovaná, pamäť je alokovaná z haldy. Veľkosť nie je pevná. Môže sa zvyšovať alebo znižovať podľa počtu prvkov. V prípade dynamicky alokovaného poľa reťazcov pomocou príkazu „nový“ musíme pridelenú pamäť prideliť manuálne. V prípade vektorov to však nie je potrebné. Prerozdelenie je možné vo vektore, zatiaľ čo to nie je možné v dynamicky alokovanom poli.
4. Predávanie reťazcového poľa vo funkcii
String Array je možné preniesť na funkciu podobnú tomu, ako odovzdávame Array.
kód:
#include
#include
using namespace std;
void display(string s(5))(
cout << s(2) ;
)
int main() (
string str(5) = ("Good", "Bad", "Positive", "Negative");
display(str);
)
Výstup :
Tu odovzdávame reťazec str str ako parameter do funkcie „display“, ktorá tlačí tretí prvok reťazcového poľa („Positive“).
5. Ako sa vyrovnať z reťazca String Array do druhého
Ak chcete kopírovať z textového poľa na druhý, mali by sme kopírovať každý prvok jednotlivo, ale celú snímku nemožno skopírovať naraz.
kód:
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;
)
)
Výstup chyby:
Výkon:
Keď sme sa pokúsili skopírovať celé pole hlavných reťazcov (str) do iného poľa reťazcov, došlo k chybe (ako je to znázornené na snímke obrazovky1), zatiaľ čo keď sme ho skopírovali element po elemente, str sa skopírovalo do s a toto sme mohli overiť tým, že si pozriete druhú snímku obrazovky výstupu.
záver
Reťazec je teda typ údajov, ktorý predstavuje pole znakov a je prítomný iba v C ++. V C sme deklarovali ako znakové pole. Pole reťazcov je pole tvorené mnohými reťazcami. Keď je deklarovaná staticky alebo dynamicky, má pevnú veľkosť a ak je deklarovaná vo forme vektora, veľkosť nie je pevná. Každý prvok a znak v konkrétnom prvku sa dajú ľahko získať pomocou indexovania poľa reťazcov.
Odporúčané články
Toto je príručka pre String Array v C ++. Tu diskutujeme o tom, ako prekonať prvok v String Array v C ++ a alokáciu String Array v C ++. Viac informácií nájdete aj v ďalších súvisiacich článkoch.
- String Array v Pythone
- StringBuffer v Jave
- Funkcie reťazca Python
- Polia v C ++
- Úvod do reťazca reťazcov v jazyku C #
- Prvých 11 funkcií a výhod C ++
- Top 8 Porovnanie String vs StringBuilder
- Array Pracujte v Unixe so syntaxou?