Preduvjet
Prije nego provjerite primjere ovog vodiča, morate provjeriti je li g ++ kompajler instaliran ili nije u sustavu. Ako koristite Visual Studio Code, instalirajte potrebna proširenja za sastavljanje izvornog koda C ++ za stvaranje izvršnog koda. Ovdje se aplikacija Visual Studio Code koristila za sastavljanje i izvršavanje koda C ++.
Sintaksa
string substr (size_t pos = 0, size_t len = npos) const;
Ovdje prvi argument sadrži početnu poziciju odakle će podniz biti pokrenut, a drugi argument sadrži duljinu podniza. Funkcija će vratiti podniz ako su navedeni valjani početni položaj i duljina. Različite uporabe ove funkcije pokazale su se u sljedećem dijelu ovog vodiča.
Primjer 1: Jednostavna upotreba substr ()
Sljedeći primjer prikazuje najčešće i jednostavno korištenje funkcije substr (). Izradite C ++ datoteku sa sljedećim kodom da biste generirali podniz iz vrijednosti niza. Niz više riječi dodijeljen je varijabli niza. Zatim valjana početna pozicija i duljina podniza imaju u argumentima vrijednosti funkcije substr (). Izvorni niz i podniz bit će ispisani nakon izvršavanja koda.
// Uključuje potrebne knjižnice
#uključi
#uključi
intglavni() {
// Definiranje string varijable
sati::nizoriginalstr='Dobro došli u Linuxhint';
// Izrežite podniz pomoću substr ()
sati::niznewstr=originalstr.podstr (jedanaest,9);
// Ispis izvornog niza
sati::trošak <<'Izvorni niz je:' <<originalstr<< ' n';
// Ispis podniz
sati::trošak <<'Podniz je:' <<newstr<< ' n';
povratak 0;
}
Izlaz:
Prema kodu, izvorni niz je ' Dobro došli u LinuxHint ‘. 11 je dao kao početni položaj podniza koji je položaj znaka 'L', a 9 je dao kao vrijednost duljine podniz. ' LinuxHint 'Vratio se kao izlaz funkcije substr () nakon izvršavanja koda.
Primjer 2: Korištenje substr () na temelju položaja određenog niza
Sljedeći kod generirat će podniz nakon pretraživanja položaja određenog niza. Napravite C ++ datoteku sa sljedećim kodom za testiranje koda. Vrijednost niza više riječi definirana je u kodu. Zatim se položaj određenog niza traži u glavnom nizu pomoću funkcije find (). Funkcija substr () korištena je za generiranje podniza počevši od početka niza do vrijednosti pozicije koju će funkcija find () vratiti.
// Uključuje potrebne knjižnice#uključi
#uključi
koristeći imenski prostorsati;
intglavni()
{
sati::nizstrData= 'Volim programiranje na C ++';
// Pronađimo položaj '-' pomoću str.find ()
intpoložaj=strData.pronaći('programiranje');
// Dobit ćemo podniz do ovog uzorka
sati::niznewstr=strData.podstr(0, položaj);
sati::trošak <<strData<< ' n';
sati::trošak <<newstr<< ' n';
povratak 0;
}
Izlaz:
Prema kodu, glavna vrijednost niza je, Volim programiranje na C ++ a vrijednost niza za pretraživanje je: ' programiranje' koji postoji u glavnom nizu. Dakle, izlaz je: Sviđa mi se C ++ ‘Nakon izvršavanja koda.
Primjer 3: Korištenje substr () s rukovanjem iznimkama
Funkcija substr () korištena je s rukovanjem iznimkama u sljedećem kodu. Iznimka će se generirati ako je nevažeća početna pozicija dana u funkciji substr (). Napravite C ++ datoteku sa sljedećim kodom za testiranje koda. U bloku try dodijeljena je vrijednost niza jedne riječi, a u funkciji substr () korištena je nevažeća početna pozicija koja će pokrenuti iznimku i ispisati poruku o pogrešci.
// Uključuje potrebne knjižnice#uključi
#uključi
intglavni() {
probati{
// Definiranje string varijable
sati::nizoriginalstr='Linuxhint';
// Izrežite podniz pomoću substr ()
sati::niznewstr=originalstr.podstr (jedanaest,9);
// Ispis podniz
sati::trošak <<'Podniz je:' <<newstr<< ' n';
}
ulov (konstsati::izvan dometa) {
sati::cerr << 'Pozicija je izvan dometa. n';
}
povratak 0;
}
Izlaz:
Prema kodu, glavna vrijednost niza je, LinuxHint a vrijednost početne pozicije je 11 koja ne postoji. Dakle, iznimka je generirana, a poruka o pogrešci je ispisana nakon izvršavanja koda.
Primjer 4: Korištenje substr () za podjelu niza
Sljedeći primjer prikazuje upotrebu funkcije substr () za podjelu niza na temelju graničnika. Funkcija find () korištena je za pretraživanje položaja razdjelnika, a funkcija erase () za uklanjanje podijeljenog niza s razdjelnikom iz glavnog niza. Petlja 'while' koristila se za pronalaženje svih položaja razdjelnika u glavnom nizu i spremanje podijeljene vrijednosti u vektorski niz. Zatim su ispisane vrijednosti vektorskog niza.
// Uključuje potrebne knjižnice#uključi
#uključi
#uključi
intglavni(){
// Definiranje niza
sati::nizstringData= 'PHP: C ++: Python:';
// Definiraj separator
sati::nizseparator= ':';
// Deklarirati vektorsku varijablu
sati::vektorJezici{};
// Deklariraj cjelobrojnu varijablu
intpoložaj;
// Deklarira varijablu niza
sati::nizisturen;
/ *
Podijelite niz pomoću funkcije substr ()
i dodavanje podijeljene riječi u vektor
* /
dok ((položaj=stringData.pronaći(separator)) !=sati::niz::npos) {
Jezici.odgurnuti(stringData.podstr(0, položaj));
stringData.izbrisati(0, položaj+separator.duljina());
}
// Ispis svih podijeljenih riječi
za (konst auto &isturen:Jezici) {
sati::trošak <<isturen<<sati::endl;
}
povratak 0;
}
Izlaz:
Prema kodu, glavna vrijednost niza je PHP: C ++: Python a vrijednost graničnika je: ' : ' . Sljedeći izlaz pojavit će se nakon izvršavanja gornje skripte.
Zaključak
Glavna svrha korištenja funkcije substr () je dohvaćanje podniz iz niza spominjanjem početne pozicije i duljine podniz. Različite uporabe ove funkcije objašnjene su u ovom vodiču pomoću više primjera kako bi se pomoglo novim korisnicima C ++ da ih pravilno koriste u svom kodu.