Viss, kas jums jāzina par virknēm C ++



Šis raksts sniegs jums detalizētas un visaptverošas zināšanas par virknēm C ++ versijā, kā arī sniegs dažādu darbību piemērus.

Termiņš nozīmē sakārtotu rakstzīmju secību. Rakstzīmju secību var attēlot, izmantojot klases objektu C ++. Klase, kas sniedz definīciju, lai to izdarītu, tiek dēvēta par Stīgu klasi. Stīgu klase saglabā rakstzīmes kā baitu secību ar funkcionalitāti, kas ļauj piekļūt viena baita rakstzīmei. C ++ saturošie atdalītāji ir pēdiņas. Šajā rakstā “Stīgas C ++” es apspriedīšu šādas tēmas:

Stīgu klases un rakstzīmju masīva atšķirība

Stīgu klase Rakstzīmju masīvs
Stīgu klase ir klase, kas definē objektus, kurus var attēlot kā rakstzīmju plūsmuRakstzīmju masīvs ir vienkārši rakstzīmju masīvs.
Stīgu gadījumā atmiņa tiek piešķirta dinamiski, tādējādi pēc pieprasījuma darbības laikā var atvēlēt vairāk atmiņasRakstzīmju masīva lielums jāpiešķir statiski, tāpēc, ja nepieciešams, darbības laikā nevar piešķirt vairāk atmiņas
Stīgu klase definē vairākas funkcijas, kas ļauj veikt virkņu operācijas ar stīgām.Rakstzīmju masīvs nepiedāvā daudzas iebūvētas funkcijas, lai manipulētu ar virknēm
Stīgas ir lēnākas, salīdzinot ar ieviešanu, nekā rakstzīmju masīvs.Rakstzīmju masīva ieviešana ir ātrāk.

Paziņojiet un inicializējiet virknes C ++

strings-in-c++Virknes inicializēšana C ++ ir diezgan vienkārša !. Mēs varam izmantot jebkuru no šīm metodēm.





izmantojot vārdu vietas std virkni std_string

vai

std :: string std_string
#include izmantojot nosaukumvietu std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Labdien ar st' std :: string std_st = 'Labdien ar std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Izeja:



Sveiki ar ch Sveiki ar st Sveiki ar std_st

Šajā piemērā mēs parādījām gan rakstzīmju masīvu (ch), gan virkni class (st un std_st) inicializācijas metodes. Pirmkārt, mēs izmantojām rakstzīmju masīva metodi, definējot rakstzīmju masīvu ch [12], kas satur 12 elementus un beidzas ar nulles rakstzīmi. Otrajā daļā mēs izmantojām virknes klases metodi.

Operācijas ar virknēm C ++

Stīgu klases izmantošanas priekšrocība ir tā, ka C ++ ir vairākas iebūvētas funkcijas, lai ar tām manipulētu. Tas padara programmēšanu vieglu un efektīvu. Ļaujiet mums izmantot dažas svarīgas virkņu manipulācijas funkcijas un izprast tās, aplūkojot dažus piemērus.

kas ir selēna pamatsistēma

Stīgas lielums: Lai atgrieztu objekta lielumu, var izmantot gan izmēra (), gan garuma () metodes.



izmaksas<< st.length() <

Izeja:

11 11

Stīgu savienošana: Divas vai vairākas virknes mēs varam sasaistīt, vienkārši izmantojot + operatoru starp tām

kā izmantot skeneri Java
string new_string = st + 'un' + std_st cout<< new_string <

Izeja:

Sveiki pēc st un Sveiki ar std_st

Pievieno virknes: Funkciju .append (virkne) var izmantot, lai savienotu un pievienotu virkni noteiktā rakstzīmes vietā virknē. Ja programmētājs ievieto str.append (str1, p, n), tad tas nozīmē, ka str. Beigās tiks pievienots n rakstzīmju skaits no pozīcijas p virknē str1.

string str = 'Man patīk mācīties' string str1 = 'Python, C ++ vai C' str. append (str1, 8, 3) cout<< str << endl

Izeja:

Man patīk mācīties C ++

Virkņu meklēšana: Mēs varam izmantot locekļa funkciju find (), lai atrastu pirmo virknes parādīšanos citā. find () meklēs auklas adatu auklas siena kaudzē, sākot no pozīcijas pos, un atgriezīs adatas pirmās parādīšanās pozīciju. Funkcija rfind () darbojas līdzīgi, izņemot to, ka tā atgriež pēdējo nodotās virknes parādīšanos.

string siena kaudze = 'Sveika pasaule!' auklas adata = 'o' cout<< haystack.find(needle)<

Izeja:

4 4 7 4294967295

Pirmā komanda cout vienkārši izdrukās “4”, kas ir indekss pirmajam “o” gadījumam siena kaudzes virknē. Ja mēs vēlamies, lai “pasaule” būtu “o”, mums ir jāpārveido “pos”, lai norādītu pāri pirmajam gadījumam. haystack.find (adata, 4) atkal atgrieztos 4, bet haystack.find (adata, 5) - 7. Ja apakšvirkne nav atrasta, find () atgriež std :: string :: npos.

Npos ir īpaša vērtība, kas vienāda ar maksimālo vērtību, ko var attēlot ar tipa size_type tipu. Šeit tas ir 4294967295. Parasti to izmanto vai nu kā virknes beigu indikatoru funkcijās, kuras sagaida virknes indeksu, vai arī kā kļūdas indikatoru funkcijās, kas atgriež virknes indeksu.

Šis vienkāršais kods meklē virkni visiem “C ++” gadījumiem str2 un izdrukā to pozīcijas:

virkne str2 = 'C ++ ir objektorientēta programmēšanas valoda, un tā ietver klases, mantojumu, polimorfismu, datu ieguvi un iekapsulēšanu. C ++ ļauj apstrādāt izņēmumus un funkciju pārslodze, kas nav iespējama C.C ++ ir spēcīga, efektīva un ātra valoda. ' 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 }

Izeja:

Atrasts “C ++” gadījums 0 pozīcijā. Atrasts “C ++” gadījums 132. pozīcijā. “C ++” gadījums atrasts 217. pozīcijā
#include izmantojot vārdu vietas standarta klases bāzi {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 () // novēlota saistīšana (RTP) ptr-> fun_3 () // novēlota saistīšana (RTP) ptr-> fun_4 () // agrīna saistīšana, bet šīs funkcijas izsaukums ir // nelikumīgs (rada kļūdu), jo rādītājs // ir bāzes tips un funkcija ir // atvasinātā klase // p-> fun_4 (5)}

Izeja:

kā paaugstināt skaitli līdz javai
pamatklases funkcija 1 atvasināta klases funkcija 2 bāzes klases funkcija 3 bāzes klases funkcija 4

Ar to mēs esam nonākuši galā ar šo rakstu par virknēm C ++. Es ceru, ka jūs sapratāt dažādas operācijas, kuras ar to var veikt. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. Edureka apmācības un sertifikācijas kursi ir paredzēti, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem, kā arī dažādām Java sistēmām, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.