Karakterlánc tömb C ++ - Hozzáférés az elemekhez a karakterlánc-tömbből - Kiosztás

Tartalomjegyzék:

Anonim

Bevezetés a C ++ karakterlánc-tömbbe

A C ++-ban számos adattípus létezik, például egész szám, úszó, karakter, karakterlánc. A karakterlánc adattípus egy karakter tömb, amely null karakterrel ('\ 0') zárul, amely a tömb vagy karakterlánc végét jelöli. C-nek ilyenként nem volt az adattípus-karakterlánca, ezért karakterláncot kellett létrehoznunk egy karakterlánc létrehozásához. A C ++ változatban van a beépített adattípus-karakterlánc.

Példa karakterre: 'a' vagy 'A'

Példa karakterláncra (C ++): “English”

Karakterlánc: karakter tömb: Karakterlánc (0) = 'E'

Karakterlánc (1) = 'n'

Karakterlánc (2) = „g”

Karakterlánc (3) = 'l'

Karakterlánc (4) = 'i'

Karakterlánc (5) = 's'

Karakterlánc (6) = 'h'

Karakterlánc (7) = '\ 0'

A vonóságok közvetlenül C ++ formátumban deklarálhatók, írhatók és kinyomtathatók. A karakterlánc mindegyik karakteréhez hozzáférhet egy index is, amely hasonló a tömb indexeléséhez. A karakterlánc esetében, ha karakter tömb formájában olvasunk a scanf () használatával, akkor leállítja a karakterláncot vagy az olvasási funkciót, amikor megtalálja az első fehér teret. Ennek elkerülése érdekében a () függvény használható. Ez egy egész sort olvas, és csak akkor hagyja abba az olvasást, ha a felhasználó az "Enter" gombra kattint.

Karakterlánc tömb a C ++-ban több karakterlánc tömbje

Húros tömb vagy Húros tömb több sor tömbje. Ezt a következőképpen lehet kijelenteni:

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

A teljes karakterlánc-tömb kinyomtatásához a hurok használható:

Kód:

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

Kimenet:

Hogyan lehet elérni az elemeket a karakterlánc-tömbből?

A húrok tömbje hasonló a kétdimenziós tömbhöz. Az első dimenzió vagy index a karakterlánc indexét határozza meg a tömbszerű 1. szót / karakterláncot vagy a 2. szót / karakterláncot és így tovább. Mivel a második dimenzió vagy index meghatározza az adott szó / karakterlánc mely karakterét.

Magyarázat egy világos példával:

Animals(2)(1) = 'i'

A fenti példában az első '2' index meghatározza a tömb második karakterláncát: „Tiger”. A második '1' index meghatározza, hogy az a "Tigris" szó második betűje vagy 1. indexe. A kétdimenziós indexeléssel minden karakter minden karakterláncból könnyen elérhető.

Karakterlánc-elosztás vagy definiálás

Különböző módszerek vannak a karakterláncok sorozatának kiosztására:

1. 2D tömb Char (amely C-ben is használható)

char Név (maximális elemszám) (az elemek maximális mérete)

char szín (4) (8) = (“kék”, “piros”, “fehér”, “fekete”)

Kód:

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

Teljesítmény :

Itt a tömb színe rögzített méretű, azaz az elemek száma rögzítve van, és az elem karaktereinek száma vagy mérete is rögzítve van. A meghatározható elemek maximális száma 4, és mindegyik legfeljebb 8 karakterből állhat. Ez a fő akadály a 2d karakter tömbben.

2. Tömb a String kulcsszóval (csak C ++ formában lehetséges)

karakterlánc neve (elemek maximális száma)

karakterlánc szín (4) = (“kék”, “piros”, “fehér”, “fekete”)

Kód:

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

Teljesítmény :

Itt csak egy dimenzió van rögzítve, amikor string tömbként deklaráljuk. Csak az elemek száma van rögzítve. Az elem mérete változhat. De a második dimenzió meghatározásával hozzáférhetünk vagy megjeleníthetjük az adott karaktert egy adott karakterláncból.

3. Vektorok használata a C ++ programban

vektor neve

vektor szín

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

Kimenet:

Itt dinamikusan allokálódik, a memóriát a halomból osztják el. A méret nincs rögzítve. Növekszik vagy csökkenthet az elemek száma szerint. Abban az esetben, ha karakterlánc-tömböt dinamikusan allokálunk az „new” paranccsal, akkor a lefoglalt memóriát manuálisan kell elosztani. De a vektor esetében erre nincs szükség. Az újraelosztás vektorban lehetséges, míg a dinamikusan elosztott tömbben nem lehetséges.

4. Karakterlánc-tömb átadása egy függvényben

A Karakterlánc-tömb átadható egy olyan függvényhez, amely hasonló a Tömb átadása.

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

Teljesítmény :

Itt átadjuk a str karakterlánc-tömböt paraméterként a „display” funkcióhoz, amely kinyomtatja a karakterlánc-tömb harmadik elemét („Pozitív”).

5. Másolás a karakterlánc-tömbből egy másikba

A karakterlánc-tömbből a másikba történő másoláshoz minden elemet külön kell másolni, de a teljes tömb nem másolható egyszerre.

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

Hiba kimenet:

Kimenet:

Itt, amikor megpróbáltuk az egész fő karakterlánc-tömböt (str) másolni egy másik karakterlánc-tömbbe (karakterisztikákba), hibát kaptunk (amint az a1-es képen látható), míg amikor elemről elemre másoltuk, az str-t másoltuk az s-be, és ellenőrizhetjük ezt a második kimeneti képernyőkép megtekintésével.

Következtetés

Így a karakterlánc egy adattípus, amely karakterek tömbje, és csak a C ++-ban van jelen. A C-ben karakter tömbként deklaráltuk. A húrok tömbje egy tömb, amely sok vonalból áll. Ha statikusan vagy dinamikusan deklarálják, akkor rögzített méretű, és ha vektor formájában deklarálják, akkor a méret nem rögzített. Az egyes elemek és a karakterek egy adott elemben könnyen elérhetők a karakterlánc-tömb indexelésével.

Ajánlott cikkek

Ez egy útmutató a String Array-hez a C ++-ban. Itt tárgyaljuk, hogyan lehet az elemet túlteljesíteni a String Array-ben a C ++-ban, és a String-tömb elosztását a C ++-ban. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-

  1. Húros tömb a Pythonban
  2. StringBuffer Java-ban
  3. Python karakterlánc funkciók
  4. Tömbök C ++-ban
  5. Bevezetés a C # karakterlánc-tömbbe
  6. A C ++ 11 legfontosabb tulajdonságai és előnyei
  7. A String és a StringBuilder nyolc legfontosabb összehasonlítása
  8. Array Munka az Unix-ban a Syntax segítségével?