Minden, amit tudnod kell a C ++ karakterláncokról



Ez a cikk részletes és átfogó ismereteket nyújt a C ++ nyelvű karakterláncokról, és példákat is ad a különféle műveletekre.

A kifejezés rendezett karaktersorozatot jelent. A karakterek sorozata a C ++ osztály egyik objektumával ábrázolható. Az osztályt, amely meghatározást ad erre, String osztálynak nevezzük. A String osztály a karaktereket bájtsorozatként tárolja azzal a funkcióval, hogy hozzáférést engedjen az egybájtos karakterhez. A C ++ - ban a körülhatároló elválasztók kettős idézőjelek. Ebben a „Strings in C ++” cikkben a következő témákat tárgyalom:

Karakterlánc és karaktertömb különbség

Vonós osztály Karaktertömb
A karakterlánc osztály olyan osztály, amely meghatározza azokat az objektumokat, amelyek karakterfolyamként ábrázolhatókA karaktertömb egyszerűen karaktertömb.
Karakterláncok esetén a memória dinamikusan van lefoglalva, így igény szerint több memória is lefoglalható futási időbenA karaktertömb méretét statikusan kell kiosztani, így szükség esetén nem lehet több memóriát lefoglalni a futási időben
A karakterlánc osztály számos olyan funkciót határoz meg, amelyek sokféle műveletet tesznek lehetővé a húrokon.A karaktertömb nem kínál sok beépített funkciót a karakterláncok manipulálására
A karakterláncok lassabbak a megvalósításhoz képest, mint a karaktertömb.Karaktertömb megvalósítása gyorsabban.

Nyújtsa be és inicializálja a karakterláncokat a C ++ nyelven

strings-in-c++A karakterlánc inicializálása C ++ nyelven nagyon egyszerű !. A következő módszerek bármelyikét alkalmazhatjuk.





névtér használatával std string std_string

vagy

std :: string std_string
#include névtér használatával std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Kimenet:



Hello by ch Hello by st Helló által std_st

Ebben a példában megmutattuk a karakter tömböt (ch) és a cl karakterláncot isass (st és std_st) inicializálási módszerek. Először a karaktertömb metódust használtuk egy ch [12] karaktertömb definiálásával, amely 12 elemet tartalmaz és null karakterrel végződik. A második részben egy string osztályos módszert alkalmaztunk.

Stringek műveletei C ++ nyelven

A string osztály használatának az az előnye, hogy a C ++ - ban több beépített függvény van ezek manipulálására. Ez megkönnyíti és hatékony a programozást. Vegyünk fel néhány fontos karakterlánc-manipulációs funkciót, és értsük meg őket néhány példával.

Karakterméret: A size () és a length () metódusok egyaránt felhasználhatók az objektum méretének visszaadására.



költség<< st.length() <

Kimenet:

11 11

Húrok összefűzése: Két vagy több karakterláncot összefűzhetünk egyszerűen a + operátor használatával közöttük

string new_string = st + 'és' + std_st cout<< new_string <

Kimenet:

Hello by st és Hello by std_st

Karakterláncok hozzáfűzése: A .append (string) osztálytagfüggvény segítségével összefűzhetjük és hozzáfűzhetünk egy karakterláncot a karakterlánc egy meghatározott karakterhelyéhez. Ha egy programozó felteszi az str.append (str1, p, n) elemet, akkor ez azt jelenti, hogy az str1 karakterlánc p pozíciójából n karakter kerül hozzáadásra az str végéhez.

string str = 'Élvezem a tanulást' string str1 = 'Python, C ++ vagy C' str.append (str1, 8, 3) cout<< str << endl

Kimenet:

Élvezem a C ++ tanulását

Karakterláncok keresése: A find () tag függvény segítségével megkereshetjük a karakterlánc első előfordulását egy másikban. A find () megkeresi a húr tűt a húr szénakazalban a posztról kezdve, és visszaadja a tű első előfordulásának helyzetét. Az rfind () függvény hasonlóan működik, kivéve, ha az átadott karakterlánc utolsó előfordulását adja vissza.

string szénakazal = 'Hello World!' húr tű = 'o' cout<< haystack.find(needle)<

Kimenet:

4 4 7 4294967295

Az első cout parancs egyszerűen kinyomtatja a „4” jelet, amely az indexe az első o előfordulásnak a szénakazalban. Ha az „o” -t akarjuk a „Világ” -ba, akkor módosítanunk kell a „pos” -t, hogy az az első előforduláson túlmutasson. A haystack.find (tű, 4) ismét 4-et adna vissza, míg a haystack.find (tű, 5) 7-et adna. Ha az alfejezet nem található, a find () std :: string :: npos-t ad vissza.

Az Npos egy speciális érték, amely megegyezik a size_type típus által reprezentálható maximális értékkel. Itt ez a 4294967295. Általában vagy a karakterlánc végének jelzőjeként használják azokat a függvényeket, amelyek várják a karakterlánc-indexet, vagy hiba-jelzőként a karakterlánc-indexet visszaadó függvények.

Ez az egyszerű kód keres egy karakterláncot az „C ++” minden előfordulására az str2-ben, és kinyomtatja a pozícióikat:

string str2 = 'A C ++ egy objektum-orientált programozási nyelv, amely osztályokat, öröklődést, polimorfizmust, adat absztrakciót és kapszulázást tartalmaz. A C ++ lehetővé teszi a kivételkezelést és a funkciók túlterhelését, amelyekre a C.C ++ nem képes, egy hatékony, hatékony és gyors nyelv. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Kimenet:

A „C ++” észlelt előfordulása a 0. pozícióban. A „C ++” előfordulása a 132. pozícióban.
#include névtér használatával std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Késői kötés (RTP) ptr-> fun_3 () // Késői kötés (RTP) ptr-> fun_4 () // Korai kötés, de ez a függvényhívás // illegális (hibát produkál), mert a mutató // az alaptípus és a függvény // származtatott osztály // p-> fun_4 (5)}

Kimenet:

amit mindannyian figyelhetnek
alaposztályfüggvény 1 származtatott osztályfüggvény 2 alaposztályfüggvény 3 alaposztályfüggvény 4

Ezzel véget értünk a Strings C ++ nyelven című cikknek. Remélem, megértette a rajta végrehajtható különféle műveleteket. Ha többet szeretne megtudni, nézze meg a Java Training by Edureka, egy megbízható online tanulási társaságot. Edureka's képzési és tanúsítási tanfolyamot arra terveztek, hogy mind az alapvető, mind a fejlett Java-koncepciók számára képezzen, különféle Java-keretrendszerekkel együtt, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.