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
- Paskelbkite ir inicializuokite eilutes C ++
- Styginių operacijos C ++
- Stygos dydis
- Styginių sujungimas
- Pridedamos eilutės
- Eilių paieška
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ų srautas | Simbolių masyvas yra tiesiog simbolių masyvas. |
Stygų atveju atmintis yra paskirstoma dinamiškai, taigi vykdymo metu pagal poreikį galima skirti daugiau atminties | Simbolių 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 ++
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 11Styginių 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_stPridedamos 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 << endlIš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 4294967295Pirmoji 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) { coutfun_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 4Tuo 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.