Vse, kar morate vedeti o nizih v C ++



V tem članku boste našli podrobno in celovito znanje o nizih v jeziku C ++ ter primere različnih operacij.

Izraz pomeni urejeno zaporedje znakov. Zaporedje znakov lahko predstavimo z uporabo predmeta razreda v jeziku C ++. Razred, ki vsebuje definicijo, se imenuje razred String. Razred String shrani znake kot zaporedje bajtov s funkcijo omogočanja dostopa do enobajtnega znaka. V jeziku C ++ so omejevalniki v dvojnih narekovajih. V tem članku »Strings in C ++« bom obravnaval naslednje teme:

Razlika med nizom in nizom znakov

String razred Niz znakov
String razred je razred, ki definira predmete, ki jih je mogoče predstaviti kot tok znakovNiz znakov je preprosto niz znakov.
V primeru nizov se pomnilnik dodeli dinamično, tako da se lahko med izvajanjem na zahtevo dodeli več pomnilnikaVelikost matrike mora biti dodeljena statično, zato po potrebi ni mogoče dodeliti več pomnilnika med izvajanjem
Razred string definira številne funkcionalnosti, ki omogočajo večkratne operacije nizov.Niz znakov ne ponuja veliko vgrajenih funkcij za upravljanje nizov
Strune so počasnejše v primerjavi z izvajanjem kot matrika znakov.Izvajanje nizov znakov je hitreje.

Izjavite in inicializirajte nize v jeziku C ++

strings-in-c++Inicializacija niza v jeziku C ++ je precej preprosta !. Uporabimo lahko katerega koli od naslednjih načinov.





z uporabo imenskega prostora std niz std_string

ali

std :: string std_string
#include z uporabo imenskega prostora std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', '}} string st =' Hello by st 'std :: string std_st =' Hello by std_st 'cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Izhod:



Pozdravljeni ch Pozdravljeni st Pozdravljeni std_st

V tem primeru smo prikazali tako niz znakov (ch) kot niz class (st in std_st) način inicializacije. Najprej smo uporabili metodo nizov znakov z definiranjem matrike ch [12], ki vsebuje 12 elementov in se konča z ničelnim znakom. V drugem delu smo uporabili metodo razreda nizov.

Operacije na nizih v C ++

Prednost uporabe razreda niz je, da je v C ++ več vgrajenih funkcij za njihovo manipulacijo. Zaradi tega je programiranje enostavno in učinkovito. Zavzemimo si nekatere pomembne funkcije manipulacije z nizi in jih razumemo s pomočjo nekaterih primerov.

Velikost niza: Za vrnitev velikosti predmeta lahko uporabimo metode velikosti () in dolžine ().



def __init __ (samo)
stroškov<< st.length() <

Izhod:

11. 11.

Združevanje nizov: Preprosto z uporabo operatorja + lahko združimo dva ali več nizov

niz new_string = st + 'in' + std_st cout<< new_string <

Izhod:

Pozdravljeni st in Pozdravljeni std_st

Dodajanje nizov: Funkcijo člana razreda .append (string) lahko uporabite za povezovanje in dodajanje niza na določenem mestu znakov v nizu. Če programer postavi str.append (str1, p, n), potem to pomeni, da bo na koncu str dodanih n števila znakov s položaja p v nizu str1.

string str = 'Uživam v učenju' string str1 = 'Python, C ++ ali C' str.append (str1, 8, 3) cout<< str << endl

Izhod:

Z veseljem se učim C ++

Iskanje nizov: S funkcijo člana find () lahko poiščemo prvi pojav niza v drugem. find () bo poiskal vrvico iglo v nizu kozolca, začenši s položaja poz in vrnil položaj prvega pojavljanja igle. Funkcija rfind () deluje podobno, le da vrne zadnji pojav posredovanega niza.

system.exit (1) java
string haystack = 'Pozdravljen, svet!' niz igle = 'o' cout<< haystack.find(needle)<

Izhod:

4 4 7 4294967295

Prvi ukaz cout bo preprosto natisnil '4', kar je indeks prvega pojavljanja 'o' v nizu kozolca. Če želimo »o« v »Svetu«, moramo spremeniti »poz« tako, da kaže mimo prvega pojavljanja. haystack.find (igla, 4) bi spet vrnil 4, medtem ko bi haystack.find (igla, 5) dal 7. Če podniza ni mogoče najti, find () vrne std :: string :: npos.

podatkovni tip datuma strežnika sql

Npos je posebna vrednost, enaka največji vrednosti, ki jo je mogoče predstaviti s tipom size_type. Tu je 4294967295. Na splošno ga funkcije, ki pričakujejo indeks nizov, uporabljajo kot kazalnik konca niza ali pa funkcije, ki vrnejo indeks nizov, kot indikator napake.

Ta preprosta koda išče niz po vseh pojavitvah »C ++« v str2 in natisne njihove položaje:

string str2 = 'C ++ je objektno usmerjen programski jezik in vključuje razrede, dedovanje, polimorfizem, abstrakcijo in enkapsulacijo podatkov.C ++ omogoča obdelavo izjem in preobremenitev funkcij, ki v C.C ++ niso mogoči, močan, učinkovit in hiter jezik. ' za (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 }

Izhod:

Najden pojav 'C ++' na položaju 0 Najden pojav 'C ++' na položaju 132 Najden pojav 'C ++' na položaju 217
#include z uporabo imenskega prostora std class base {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 () // Pozna vezava (RTP) ptr-> fun_3 () // Pozna vezava (RTP) ptr-> fun_4 () // Zgodnja vezava, vendar je ta klic funkcije // nezakonit (povzroči napako), ker je kazalec // osnovnega tipa in funkcije je // izpeljani razred // p-> fun_4 (5)}

Izhod:

funkcija osnovnega razreda 1 funkcija izpeljanega razreda 2 funkcija osnovnega razreda 3 funkcija osnovnega razreda 4

S tem smo zaključili ta članek o Strings v C ++. Upam, da ste razumeli različne operacije, ki jih je mogoče izvesti na njem. Če želite izvedeti več, si oglejte Java Training by Edureka, zaupanja vredno podjetje za spletno učenje. Edureka tečaj usposabljanja in certificiranja je zasnovan tako, da vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi ogrodji Java, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje tega spletnega dnevnika, mi se vam bomo javili v najkrajšem možnem času.