Kaikki mitä sinun tarvitsee tietää merkkijonoista C ++: ssa



Tämä artikkeli antaa sinulle yksityiskohtaisen ja kattavan tiedon merkkijonoista C ++: ssa ja tarjoaa myös esimerkkejä erilaisista toiminnoista.

Termi tarkoittaa järjestettyä merkkijonoa. Merkkijono voidaan esittää käyttämällä luokan C ++ objektia. Luokkaa, joka antaa määritelmän tälle, kutsutaan merkkijonoluokaksi. Merkkijonoluokka tallentaa merkit tavusarjana toiminnallisuudella, joka sallii pääsyn yksitavuiseen merkkiin. C ++: ssa sulkevat erotimet ovat kaksinkertaisia ​​lainausmerkkejä. Tässä 'Strings in C ++' -artikkelissa käsittelen seuraavia aiheita:

php muuntaa merkkijonon taulukoksi

Merkkijonoluokka ja merkkitaulukkoero

Jousiluokka Merkistö
Merkkijonoluokka on luokka, joka määrittelee objektit, jotka voidaan esittää merkkivirranaMerkkiryhmä on yksinkertaisesti merkkiryhmä.
Merkkijonojen kohdalla muisti varataan dynaamisesti, joten enemmän muistia voidaan allokoida ajon aikana tarpeen mukaanMerkkiryhmän koko on allokoitava staattisesti, joten enemmän muistia ei voida allokoida ajon aikana tarvittaessa
Merkkijonoluokka määrittelee useita toimintoja, jotka mahdollistavat moninkertaiset operaatiot jousille.Merkistö ei tarjoa monia sisäänrakennettuja toimintoja merkkijonojen manipuloimiseksi
Merkkijonot ovat hitaampia toteutukseen verrattuna kuin merkistö.Merkkiryhmän toteutus on nopeammin.

Ilmoita ja alusta merkkijonot C ++: ssa

strings-in-c++Merkkijonon alustus C ++: ssa on melko yksinkertaista !. Voimme käyttää mitä tahansa seuraavista menetelmistä.





käyttämällä nimitilaa vakio merkkijono std_string

tai

std :: merkkijono std_string
#include käyttämällä nimitilaa std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} merkkijono st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Tuotos:



Hello by ch Hello by st Hei kirjoittanut std_st

Tässä esimerkissä olemme osoittaneet sekä merkkimatriisin (ch) että merkkijonon class (st ja std_st) -alustusmenetelmät. Ensinnäkin käytimme merkkimatriisimenetelmää määrittelemällä merkkiryhmän ch [12], joka sisältää 12 elementtiä ja päättyy nollamerkkiin. Toisessa osassa käytimme merkkijonomenetelmää.

Toiminnot jousille kielellä C ++

Merkkijonoluokan käytön etuna on, että C ++: ssa on useita sisäänrakennettuja toimintoja niiden manipuloimiseksi. Tämä tekee ohjelmoinnista helppoa ja tehokasta. Otetaan käyttöön tietyt tärkeät merkkijonon manipulointitoiminnot ja ymmärretään ne tarkastelemalla joitain esimerkkejä.

Merkkijonon koko: Sekä size () - että length () -menetelmiä voidaan käyttää palauttamaan objektin koko.



kustannus<< st.length() <

Tuotos:

11 11

Merkkijono ketjutus: Voimme liittää kaksi tai useampaa merkkijonoa yksinkertaisesti käyttämällä niiden välillä + -operaattoria

merkkijono new_string = st + 'ja' + std_st cout<< new_string <

Tuotos:

Hei st ja Hei std_st

Merkkijonojen liittäminen: .Append (string) -luokan jäsenfunktiota voidaan käyttää ketjun ketjutukseen ja liittämiseen merkkijonon tiettyyn merkkipaikkaan. Jos ohjelmoija laittaa str.append (str1, p, n), se tarkoittaa, että n merkkien määrä asemasta p merkkijonossa str1 lisätään merkkijonon loppuun.

merkkijono str = 'nautin oppimisesta' merkkijono str1 = 'Python, C ++ tai C' str. append (str1, 8, 3) cout<< str << endl

Tuotos:

Nautin oppimisesta C ++

Merkkijonojen haku: Voimme käyttää find () -jäsenfunktiota etsimään merkkijono ensimmäisen esiintymisen toisen sisällä. find () etsii narunneulaa merkkijonon heinäsuovasta sisäpuolelta alkaen positiosta ja palauttaa neulan ensimmäisen esiintymisen sijainnin. Funktio rfind () toimii samalla tavalla, paitsi että se palauttaa välitetyn merkkijonon viimeisen esiintymän.

string haystack = 'Hei maailma!' merkkineula = 'o' cout<< haystack.find(needle)<

Tuotos:

4 4 7 4294967295

Ensimmäinen cout-komento yksinkertaisesti tulostaa ”4”, joka on indeksi ensimmäisestä ”o” esiintymisestä heinäsuovaketjussa. Jos haluamme 'o': n 'Maailmassa', meidän on muutettava 'pos' osoittamaan ensimmäisen esiintymisen ohi. haystack.find (neula, 4) palauttaisi taas 4, kun taas haystack.find (neula, 5) antaisi 7. Jos alisarjaa ei löydy, find () palauttaa std :: string :: npos.

Npos on erityinen arvo, joka on yhtä suuri kuin tyypin size_type edustama enimmäisarvo. Tässä se on 4294967295. Yleensä sitä käytetään joko merkkijonon loppuindikaattorina funktioissa, jotka odottavat merkkijonohakemistoa, tai virheen osoittimena funktioissa, jotka palauttavat merkkijonohakemiston.

Tämä yksinkertainen koodi etsii merkkijonon kaikista 'C ++' -tapahtumista str2: ssa ja tulostaa niiden sijainnit:

string str2 = 'C ++ on olio-ohjelmointikieli, joka sisältää luokkia, perimisen, polymorfismin, tiedonkeruun ja kapseloinnin. C ++ sallii poikkeusten käsittelyn ja toimintojen ylikuormituksen, jotka eivät ole mahdollisia C.C ++: ssa on tehokas, tehokas ja nopea kieli. ' for (merkkijono :: koon_tyyppi i = 0, tfind (tfind = wikistr.find ('C ++', i))! = merkkijono :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Tuotos:

'C ++': n havaittu esiintyminen paikassa 0 Löytyi 'C ++': n esiintyminen paikassa 132 Löydetty 'C ++': n esiintyminen paikassa 217
#include käyttämällä nimitilan vakioluokan perustaa {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 () // Myöhäinen sidonta (RTP) ptr-> fun_3 () // Myöhäinen sidonta (RTP) ptr-> fun_4 () // Varhainen sidonta, mutta tämä toimintokutsu on // laiton (tuottaa virheen), koska osoitin // on perustyyppi ja funktio on // johdettua luokkaa // p-> fun_4 (5)}

Tuotos:

perusluokkatoiminto 1 johdettu luokkatoiminto 2 perusluokkatoiminto 3 perusluokkatoiminto 4

Tämän avulla olemme päättäneet tämän artikkelin jousista C ++: ssa. Toivon, että sait käsityksen erilaisista toiminnoista, joita sillä voidaan suorittaa. Jos haluat oppia lisää, tutustu luotettavan verkkokoulutusyrityksen Edurekan Java-koulutukseen. Edurekan koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sinua sekä ydin- että edistyneille Java-konsepteille sekä erilaisille Java-kehyksille, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.