Kako koristiti funkciju substr () u C ++

How Use Substr Function C



Način izrezivanja bilo kojeg dijela iz niza naziva se podniz. Funkcija substr () postoji u C ++ za generiranje novog niza izrezivanjem određenog dijela iz niza. The niz.h Za korištenje ove funkcije potrebno je uključiti datoteku knjižnice. Ova funkcija ima dva argumenta. Prvi argument sadrži početnu poziciju novog niza, a drugi argument sadrži duljinu niza. Način korištenja funkcije substr () u C ++ objašnjen je u ovom vodiču.

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.