Különbség a karakter tömb és a karakterlánc között

Szerző: Laura McKinney
A Teremtés Dátuma: 1 Április 2021
Frissítés Dátuma: 5 Lehet 2024
Anonim
Különbség a karakter tömb és a karakterlánc között - Technológia
Különbség a karakter tömb és a karakterlánc között - Technológia

Tartalom


A C ++ mindkettőt támogatja, Karakter tömb és karakterlánc, mivel a C ++ jelentős előnyökkel jár mindkettő használatában. De a karakter tömbön való működésképtelenség felveti az osztályhúzás fejlődését. A karakter tömb és a karakterlánc egyaránt tartalmazza a karakter sorozatot. Azonban az alapvető különbség a karakter tömb és a karakterlánc között az, hogy a „karakter tömb” nem használható szokásos operátorokkal, míg a „karakterlánc” objektumok szokásos operátorokkal kezelhetők. Vizsgáljuk meg a karakter tömb és a karakterlánc közötti egyéb különbségeket.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjaKarakter tömbHúr
AlapvetőA karakter tömb a változók, a karakter adattípus gyűjteménye.A karakterlánc osztály, a karakterlánc változói pedig a "karakterlánc" osztály tárgya.
Szintaxischar tömb_név;string string_name;
Az indexelésEgy karakter tömb egyéni karakteréhez a tömb indexében férhet hozzá.Karakterláncban az adott karakter elérhető a "string_name.charAt (index)" funkcióval.
AdattípusA karakter tömb nem határozza meg az adattípust.Egy karakterlánc határozza meg az adattípust a C ++ kategóriában.
Az üzemeltetőkA C ++ operátorok nem alkalmazhatók karakter tömbre.A karakterláncra alkalmazhat szabványos C ++ operátort.
HatárA tömbhatárokat könnyen túllépik.A határokat nem lépjük túl.
HozzáférésGyors hozzáférés.Lassú hozzáférés.


A karakter tömb meghatározása


Karakter tömb a „char” adattípus változóinak gyűjteménye; lehet egydimenziós tömb vagy kétdimenziós tömb. Ezt is null terminált húrnak hívják. Karakter tömb a karakterek sorozata, amelyeket egymást követő memóriacímekben tárolnak. Karakter tömbben egy adott karakter hozzáférhető az indexével. A „Null karakter” megszünteti a karakter tömböt.

Vegyünk egy példát a karakter tömbről: -

char név = {A, j, a, y, 0}; vagy char name = "Ajay";

Itt a „char” egy karakter adattípus, a „name” a karakter tömb változó neve. Kétféle módon mutattam be a karakter tömb inicializálását. Az első módszerben a null kifejezetten szerepel, a második módszernél a fordító automatikusan beszúrja a nullot.


A karakterlánc vége mindig nulla karakter; ez a karakter tömb befejező karaktere. A karakter tömb nem beépített adattípus; karakter tömböt hozunk létre a deklarálásával. A karakter tömbre nem alkalmazhat szabvány operátorokat. A karakter tömb működtetéséhez van néhány beépített funkció, például (strlen (), strlwr (), strupr (), strcat (). Mivel a szokásos operátorok nem alkalmazhatók karakter tömbre, nem vesznek részt kifejezésben.

A karakter tömb mutatóját is létrehozhatjuk.

Megértjük egy példával.

char s1 = "Hello"; char s2 = "uram"; s1 = s1 + s2; // a hiba operátorok nem alkalmazhatók s2 = s1; // hiba Karakter mutató char * s = "Reggel"; char * p; p = s; // végrehajt

A fenti példában két s1, s2 karakter tömböt és két s és p karakter mutatót deklaráltunk. Az s1 és s2 karakter tömb inicializálva van, láthatjuk, hogy sem az összeadási operátor (+), sem az hozzárendelési operátor nem működik a karakter tömbön. De egy karakter mutatót hozzá lehet rendelni egy másik karakter mutatóhoz.

Ne feledje, ha a karakter tömb inicializálása megtörtént, akkor nem lehet újból inicializálni egy másik karakterkészletre. A karakter tömbhöz vagy a null terminált karakterlánchoz való gyors hozzáférés gyors, mint a C ++ karakterláncban.

A húr meghatározása

A karakterlánc nem beépített C ++ adattípus. Ez egy „string” típusú osztályobjektum. Mint a C ++-ban, az osztály létrehozása ugyanolyan, mint a „típus” létrehozása. Az „string” osztály a C ++ könyvtár része. A karakterkészletet vagy a karakter tömböt egészében tartalmazza. A szabványos karakterlánc osztály fejlesztésének három oka van.

  • Első „konzisztencia”, a karakter tömbök önmagában nem adattípusok.
  • Második "kényelem", akkor nem használhat szabványos operátorokat karakter tömbön.
  • Harmadik „biztonság”, a tömbhatárokat könnyen túllépik.

Megértsük a húrokat egy példával.

s1 húr; s1 = "Hello"; s2 húr ("Jó reggelt"); s3 = "Hennery"; s4 húr;

A fenti nyilatkozatban négy karakterláncváltozót vagy objektumot (s1, s2, s3, s4) deklarálunk. A fenti nyilatkozatban három lehetőséget mutattam be a húr inicializálására. Az s1 karakterláncot deklarálják, majd külön inicializálják. Az s2 karakterláncot a „String” osztály építője inicializálja. Az s3 karakterlánc deklarálásakor inicializálódik, mint a normál adattípus. A szokásos operátort alkalmazhatjuk a karakterláncváltozókra.

s4 = s1; // egy string objektum hozzárendelése a többi s4 = s1 + s2; // két karakterlánc hozzáadása és az eredmény tárolása harmadik karakterláncban, ha (s3> s2) // két s5 karakterlánc húr összehasonlítása (s1); új karakterlánc-objektum létrehozása meglévő karakterlánc-objektummal

A fenti kódban különféle operátorokat alkalmazunk egy karakterláncon és különféle műveleteket hajtunk végre. Az első utasítás másolja az egyik karakterlánc-objektumot egy másik karakterlánc-objektumba. A második utasításban két karakterlánc összekapcsolódik, és egy harmadik karakterláncban tárolódik. A harmadik állításban két karakterláncot hasonlítunk össze. A negyedik állításban egy új karakterlánc-objektum jön létre a már létező karakterlánc-objektummal.

A karakterlánchoz való hozzáférés lassú, mint egy karakter tömb vagy nulla véget érő karakterlánc.

Főbb különbségek a karakter tömb és a karakterlánc között

  1. Karakter tömb olyan változók gyűjteménye, amelyek karakter adattípusúak. A karakterlánc egy osztály, amelyet a karakterláncok deklarálására használnak.
  2. Az indexérték használatával egy karakterhez karakter tömbből férhet hozzá. Másrészt, ha egy karakterhez szeretne hozzáférni egy karakterláncban, akkor a karakterlánc „_név.charAt ”(index) függvénnyel érheti el.
  3. Mivel a tömb nem adattípus, a karakter szintén nem adattípus. Másrészt, mivel a karakterlánc osztályként viselkedik, mint referencia típus, mondhatjuk, hogy a karakterlánc adattípus.
  4. Nem alkalmazhat semmilyen operátort karakter tömbre, míg operátorokat alkalmazhat a karakterláncon.
  5. Ha tömb karakter tömb, akkor rögzített hossza van, és határai könnyen túlléphetők. Ahol a karakterláncnak nincs határa.
  6. A tömb elemeket egy szomszédos memóriahelyen tárolják, így ehhez gyorsabban lehet hozzáférni, mint a string változónál.

Következtetés:

A karaktersoron történő működésképtelenség felvette a szabványos karakterlánc osztály fejlesztését.