Viskas, ką reikia žinoti apie stygas C ++ formatu



Šis straipsnis suteiks jums išsamių ir išsamių žinių apie stygas C ++ formatu ir pateiks įvairių operacijų pavyzdžius.

Terminas reiškia sutvarkytą simbolių seką. Simbolių seka gali būti pavaizduota naudojant klasės objektą C ++. Klasė, pateikianti apibrėžimą, vadinama styginių klase. Stygų klasėje simboliai saugomi kaip baitų seka, suteikiant galimybę pasiekti vieno baito simbolį. C ++, pridedami ribotuvai yra dvigubos kabutės. Šiame straipsnyje „Stygos C ++“ aptarsiu šias temas:

Styginių klasės ir simbolių masyvo skirtumas

Styginių klasė Simbolių masyvas
Styginių klasė yra klasė, apibrėžianti objektus, kurie gali būti vaizduojami kaip simbolių srautasSimbolių masyvas yra tiesiog simbolių masyvas.
Stygų atveju atmintis yra paskirstoma dinamiškai, taigi vykdymo metu pagal poreikį galima skirti daugiau atmintiesSimbolių masyvo dydis turi būti priskirtas statiškai, taigi, jei reikia, vykdymo metu negalima skirti daugiau atminties
Styginių klasė apibrėžia keletą funkcijų, leidžiančių atlikti stygų daugiakampius veiksmus.Simbolių masyvas nesiūlo daug integruotų funkcijų, skirtų manipuliuoti eilutėmis
Eilutės yra lėtesnės, palyginti su įgyvendinimu, nei simbolių masyvas.Simbolių masyvo įgyvendinimas yra greičiau.

Paskelbkite ir inicializuokite eilutes C ++

strings-in-c++Stygos inicijavimas C ++ yra gana paprastas !. Mes galime naudoti bet kurį iš šių būdų.





naudojant vardų srities standartinę eilutę std_string

arba

std :: string std_string
#include naudojant vardų sritį std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Sveiki, parašė' std: eilutė std_st = 'Sveiki, parašė std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Išvestis:



Sveiki, sveiki, sveiki, sveiki, sveiki, std_st

Šiame pavyzdyje mes parodėme simbolių masyvą (ch) ir eilutę clasilas (st ir std_st) inicializavimo metodai. Pirma, mes panaudojome simbolių masyvo metodą, apibrėždami simbolių masyvą ch [12], kuriame yra 12 elementų ir kuris baigiasi nuliniu simboliu. Antroje dalyje naudojome eilutės klasės metodą.

Styginių operacijos C ++

Styginių klasės naudojimo pranašumas yra tas, kad C ++ yra keletas integruotų funkcijų, leidžiančių jomis manipuliuoti. Tai leidžia lengvai ir efektyviai programuoti. Paimkime tam tikras svarbias eilutės manipuliavimo funkcijas ir supraskime jas, peržiūrėdami keletą pavyzdžių.

Stygos dydis: Norėdami grąžinti objekto dydį, galima naudoti tiek dydžio (), tiek ilgio () metodus.



virėjo ir lėlės skirtumas
išlaidų<< st.length() <

Išvestis:

11 11

Styginių sujungimas: Mes galime susieti dvi ar daugiau eilučių paprasčiausiai naudodami + operatorių tarp jų

eilutė new_string = st + 'ir' + std_st cout<< new_string <

Išvestis:

Sveiki pagal st ir sveiki pagal std_st

Pridedamos eilutės: Klasės nario funkciją .append (string) galima naudoti norint susieti ir pridėti eilutę konkrečioje eilutės simbolio vietoje. Jei programuotojas įdeda str.append (str1, p, n), tai reiškia, kad n simbolių skaičius iš p pozicijos eilutėje str1 bus pridėtas prie str. Pabaigos.

string str = 'Man patinka mokytis' string str1 = 'Python, C ++, or C' str. append (str1, 8, 3) cout<< str << endl

Išvestis:

Man patinka mokytis C ++

Ieškoma eilučių: Mes galime naudoti funkciją „find ()“, kad surastume pirmą eilutės atsiradimą kitoje. „find“ (ieškos virvelės adatos virvelės šieno kupetoje, pradedant nuo pozicijos pos ir grąžins pirmojo adatos atsiradimo padėtį. Funkcija rfind () veikia panašiai, išskyrus tai, kad ji pateikia paskutinį perduotos eilutės atvejį.

fibonacci skaičius c ++
string haystack = 'Sveikas pasauli!' virvelinė adata = 'o' cout<< haystack.find(needle)<

Išvestis:

4 4 7 4294967295

Pirmoji komanda „cout“ tiesiog atspausdins „4“, kuris yra pirmojo „o“ šieno kupetos eilutėje indeksas. Jei norime, kad „Pasaulis“ būtų „o“, turime pakeisti „pos“, kad būtų rodomas per pirmąjį įvykį. haystack.find (adata, 4) vėl grąžintų 4, o haystack.find (adata, 5) duotų 7. Jei substringas nerastas, find () grąžina std :: string :: npos.

Npos yra speciali vertė, lygi maksimaliai vertei, kurią gali pateikti tipas size_type. Čia tai yra 4294967295. Paprastai jis naudojamas kaip eilutės pabaigos indikatorius funkcijų, kurios tikisi eilutės indekso, arba kaip klaidos indikatorius funkcijos, kurios grąžina eilutės indeksą.

Šis paprastas kodas ieško eilutės visiems „C ++“ atvejams str2 ir išspausdina jų pozicijas:

string str2 = 'C ++ yra į objektą orientuota programavimo kalba, apimanti klases, paveldėjimą, polimorfizmą, duomenų abstrakciją ir kapsuliavimą. C ++ leidžia tvarkyti išimtis, o funkcijų perkrova, kurios neįmanoma atlikti naudojant C.C ++, yra galinga, efektyvi ir greita kalba. ' 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 }

Išvestis:

Rastas „C ++“ atvejis 0 padėtyje. Rastas „C ++“ įvykis 132 padėtyje. Rastas „C ++“ įvykis 217 padėtyje.
#include naudojant vardų srities standartinę klasės bazę {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 () // Vėlyvas susiejimas (RTP) ptr-> fun_3 () // Vėlyvas susiejimas (RTP) ptr-> fun_4 () // Ankstyvasis susiejimas, tačiau šios funkcijos iškvietimas // yra neteisėtas (sukelia klaidą), nes rodyklė // yra pagrindo tipo ir funkcijos yra // išvestos klasės // p-> fun_4 (5)}

Išvestis:

pagrindinės klasės funkcija 1 išvestinė klasės funkcija 2 pagrindinės klasės funkcija 3 pagrindinės klasės funkcija 4

Tuo mes baigėme šį straipsnį apie eilutes C ++. Tikiuosi, kad supratote įvairias operacijas, kurias galima atlikti. Jei norite sužinoti daugiau, apsilankykite patikimos internetinės mokymosi įmonės „Edureka“ „Java“ mokymuose. „Edureka“ mokymo ir atestavimo kursai skirti mokyti jus tiek pagrindinėms, tiek pažangioms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skiltyje, ir mes kuo greičiau susisieksime su jumis.