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
- Ilmoita ja alusta merkkijonot C ++: ssa
- Toiminnot jousille kielellä C ++
- Merkkijonon koko
- Merkkijono ketjutus
- Merkkijonojen lisääminen
- Merkkijonojen haku
Merkkijonoluokka ja merkkitaulukkoero
Jousiluokka | Merkistö |
Merkkijonoluokka on luokka, joka määrittelee objektit, jotka voidaan esittää merkkivirrana | Merkkiryhmä on yksinkertaisesti merkkiryhmä. |
Merkkijonojen kohdalla muisti varataan dynaamisesti, joten enemmän muistia voidaan allokoida ajon aikana tarpeen mukaan | Merkkiryhmä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
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 11Merkkijono 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_stMerkkijonojen 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 << endlTuotos:
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 4294967295Ensimmä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) { coutfun_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 4Tä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.