Sve što trebate znati o žicama u C ++-u

Ovaj će vam članak pružiti detaljno i sveobuhvatno znanje o stringovima u C ++-u, a također će dati primjere različitih operacija.

Uvjet označava uređeni niz znakova. Slijed znakova može se predstaviti pomoću objekta klase u C ++. Klasa koja daje definiciju za to naziva se String klasa. String klasa pohranjuje znakove kao slijed bajtova s ​​funkcijom omogućavanja pristupa jednobajtnom znaku. U C ++-u su graničnici s dva navodnika. U ovom članku 'Strings in C ++' raspravljat ću o sljedećim temama:

Razlika u klasi niza i nizu znakova

Klasa gudača Niz znakova
String klasa je klasa koja definira objekte koji se mogu predstaviti kao tok znakovaNiz znakova jednostavno je niz znakova.
U slučaju nizova, memorija se dodjeljuje dinamički, pa se na zahtjev može dodijeliti više memorije u vrijeme izvođenjaVeličina polja znakova mora se dodijeliti statički, pa se prema potrebi ne može dodijeliti više memorije u vrijeme izvođenja
Klasa string definira brojne funkcionalnosti koje omogućuju višestruke operacije na žicama.Niz znakova ne nudi mnogo ugrađenih funkcija za manipulaciju nizovima
Nizovi su sporiji u usporedbi s implementacijom od niza znakova.Implementacija niza znakova je brže.

Deklarirajte i inicijalizirajte nizove u C ++

strings-in-c++Inicijalizacija niza u jeziku C ++ prilično je jednostavna !. Možemo se poslužiti bilo kojom od sljedećih metoda.



pomoću prostora imena std string std_string

ili

std :: string std_string
#include using namespace 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 }

Izlaz:

što su podaci u znanosti
Pozdrav od ch Pozdrav od st Pozdrav od std_st

U ovom smo primjeru prikazali i niz znakova (ch) i niz class (st i std_st) metode inicijalizacije. Prvo, koristili smo metodu niza znakova definirajući niz znakova ch [12] koji sadrži 12 elemenata i završava s null znakom. U drugom smo dijelu koristili metodu klase stringa.

Operacije na žicama u C ++

Prednost korištenja klase stringa je u tome što u C ++ postoji nekoliko ugrađenih funkcija za upravljanje njima. To programiranje čini lakim i učinkovitim. Zauzmimo neke važne funkcije manipulacije nizovima i shvatimo ih gledajući neke primjere.

Veličina niza: Za vraćanje veličine predmeta mogu se koristiti metode size () i length ().

trošak<< st.length() <

Izlaz:

11 11

Spajanje nizova: Dvije ili više žica možemo povezati jednostavnim korištenjem operatora + između njih

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

Izlaz:

Pozdrav st i Pozdrav std_st

Dodavanje žica: Funkcija člana .append (string) klase može se koristiti za spajanje i dodavanje niza na određeno mjesto znakova u nizu. Ako programer stavi str.append (str1, p, n), to znači da će n broj znakova s ​​položaja p u nizu str1 biti dodan na kraj str.

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

Izlaz:

Uživam učiti C ++

Traženje nizova: Možemo koristiti funkciju find () da pronađemo prvu pojavu niza u drugoj. find () potražit će iglu za uzicu unutar plasta sijena počevši od položaja poz i vratiti položaj prvog pojavljivanja igle. Funkcija rfind () radi slično, osim što vraća posljednju pojavu proslijeđenog niza.

string haystack = 'Pozdrav svijetu!' igla niza = 'o' cout<< haystack.find(needle)<

Izlaz:

4 4 7 4294967295

Prva naredba cout jednostavno će ispisati '4', što je indeks prvog pojavljivanja 'o' u nizu sijena. Ako želimo 'o' u 'Svijetu', moramo izmijeniti 'poz' kako bi usmjerio prvu pojavu. haystack.find (igla, 4) opet bi vratio 4, dok bi haystack.find (igla, 5) dao 7. Ako podniz nije pronađen, find () vraća std :: string :: npos.

Npos je posebna vrijednost jednaka maksimalnoj vrijednosti koju može predstaviti tip size_type. Ovdje je 4294967295. Općenito se koristi ili kao pokazatelj kraja niza od strane funkcija koje očekuju indeks niza ili kao pokazatelj pogreške od funkcija koje vraćaju indeks niza.

Ovaj jednostavni kod pretražuje niz svih pojava “C ++” u str2 i ispisuje njihove položaje:

string str2 = 'C ++ je objektno orijentirani programski jezik i uključuje klase, nasljeđivanje, polimorfizam, apstrakciju podataka i enkapsulaciju.C ++ omogućuje rukovanje iznimkama, a preopterećenje funkcija koje u C.C ++ nije moguće, moćan je, učinkovit i brz 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 }

Izlaz:

Pronađena pojava 'C ++' na poziciji 0 Pronađena pojava 'C ++' na poziciji 132 Pronađena pojava 'C ++' na poziciji 217
#include using namespace 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 () // Kasno vezivanje (RTP) ptr-> fun_3 () // Kasno vezivanje (RTP) ptr-> fun_4 () // Rano vezivanje, ali ovaj poziv funkcije // je nezakonit (proizvodi pogrešku) jer pokazivač // je osnovnog tipa i funkcija je // izvedene klase // p-> fun_4 (5)}

Izlaz:

java izbiti iz metode
funkcija osnovne klase 1 izvedena funkcija klase 2 funkcija osnovne klase 3 funkcija osnovne klase 4

Ovime smo završili ovaj članak o žicama u C ++-u. Nadam se da ste razumjeli razne operacije koje se na njemu mogu izvesti. Ako želite saznati više, pogledajte Java Training tvrtke Edureka, pouzdane tvrtke za internetsko učenje. Edureka tečaj osposobljavanja i certificiranja osmišljen je tako da vas osposobi za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.