Különbség a karakter tömb és a karakterlánc között
Tartalom
- Összehasonlító táblázat
- A húr meghatározása
- Főbb különbségek a karakter tömb és a karakterlánc között
- Következtetés:
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.
- Összehasonlító táblázat
- Meghatározás
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | Karakter tömb | Hú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. |
Szintaxis | char tömb_név; | string string_name; |
Az indexelés | Egy 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ípus | A 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ők | A C ++ operátorok nem alkalmazhatók karakter tömbre. | A karakterláncra alkalmazhat szabványos C ++ operátort. |
Határ | A tömbhatárokat könnyen túllépik. | A határokat nem lépjük túl. |
Hozzáférés | Gyors 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
- 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.
- 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.
- 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.
- Nem alkalmazhat semmilyen operátort karakter tömbre, míg operátorokat alkalmazhat a karakterláncon.
- 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.
- 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.