Kako uporabljati funkcijo substr () v C ++

How Use Substr Function C



Način izrezovanja katerega koli dela iz niza se imenuje podniz. Funkcija substr () obstaja v C ++ za ustvarjanje novega niza z izrezovanjem določenega dela iz niza. The niz.h Za uporabo te funkcije morate vključiti datoteko knjižnice. Ta funkcija ima dva argumenta. Prvi argument vsebuje začetni položaj novega niza, drugi argument pa dolžino niza. Način uporabe funkcije substr () v C ++ je bil razložen v tej vadnici.

Predpogoj

Preden preverite primere te vadnice, morate preveriti, ali je prevajalnik g ++ nameščen ali ne v sistemu. Če uporabljate Visual Studio Code, namestite potrebne razširitve za sestavljanje izvorne kode C ++ za ustvarjanje izvedljive kode. Tu je bila aplikacija Visual Studio Code uporabljena za sestavljanje in izvajanje kode C ++.







Sintaksa

niz substr (size_t pos = 0, size_t len ​​= npos) const;



Tu prvi argument vsebuje izhodiščni položaj, od koder se zažene podniz, drugi pa dolžino podniza. Če podate veljaven začetni položaj in dolžino, bo funkcija vrnila podniz. Različne uporabe te funkcije so bile prikazane v naslednjem delu te vadnice.



Primer 1: Enostavna uporaba substr ()

Naslednji primer prikazuje najpogostejšo in preprosto uporabo funkcije substr (). Ustvarite datoteko C ++ z naslednjo kodo, da ustvarite podniz iz vrednosti niza. Niz več besed je bil dodeljen spremenljivki niza. Nato sta veljavni začetni položaj in dolžina podnizov v vrednostih argumenta funkcije substr (). Izvirni niz in podniz bosta natisnjena po izvedbi kode.





// Vključi potrebne knjižnice
#vključi
#vključi


intglavni() {
// Določimo spremenljivko niza
ure::vrvicaoriginalstr='Dobrodošli v Linuxhintu';
// Izrežite podniz z uporabo substr ()
ure::vrvicanewstr=originalstr.substr (enajst,9);
// Natisni izvirni niz
ure::stroški <<'Izvirni niz je:' <<originalstr<< ' n';
// Natisni podniz
ure::stroški <<'Podniz je:' <<newstr<< ' n';

vrnitev 0;
}

Izhod:

V skladu s kodo je izvirni niz ' Dobrodošli v LinuxHintu ‘. 11 je dal kot začetni položaj podniz, ki je položaj znaka 'L', in 9 kot vrednost dolžine podniz. ' LinuxHint 'Se je vrnil kot izhod funkcije substr () po izvedbi kode.



Primer 2: Uporaba substr () na podlagi položaja določenega niza

Naslednja koda bo generirala podniz po iskanju položaja določenega niza. Ustvarite datoteko C ++ z naslednjo kodo, da preizkusite kodo. V kodi je bila definirana nizna vrednost več besed. Nato se z uporabo funkcije find () poišče položaj določenega niza v glavnem nizu. Funkcija substr () je bila uporabljena za ustvarjanje podnizka, ki se začne od začetka niza do vrednosti položaja, ki jo bo vrnila funkcija find ().

// Vključi potrebne knjižnice
#vključi
#vključi
z uporabo imenski prostorure;

intglavni()
{
ure::vrvicastrData= 'Všeč mi je programiranje v C ++';

// S pomočjo str.find () poiščimo položaj '-'
intpoložaj=strData.najti('programiranje');

// Podniz bomo dobili do tega vzorca
ure::vrvicanewstr=strData.substr(0, položaj);

ure::stroški <<strData<< ' n';
ure::stroški <<newstr<< ' n';

vrnitev 0;
}

Izhod:

V skladu s kodo je glavna vrednost niza, Všeč mi je programiranje v C ++ vrednost iskalnega niza pa je: programiranje ' ki obstaja v glavnem nizu. Torej je rezultat: Všeč mi je C ++ 'Po izvedbi kode.

Primer 3: Uporaba substr () z obravnavo izjem

Funkcija substr () je bila v naslednji kodi uporabljena z obravnavo izjem. Izjema bo ustvarjena, če je v funkciji substr () podan neveljaven začetni položaj. Ustvarite datoteko C ++ z naslednjo kodo, da preizkusite kodo. V bloku try je bila dodeljena vrednost niza ene besede, v funkciji substr () pa je bila uporabljena neveljavna začetna pozicija, ki bo sprožila izjemo in natisnila sporočilo o napaki.

// Vključi potrebne knjižnice
#vključi
#vključi

intglavni() {
poskusite{

// Določimo spremenljivko niza
ure::vrvicaoriginalstr='Linuxhint';
// Izrežite podniz z uporabo substr ()
ure::vrvicanewstr=originalstr.substr (enajst,9);
// Natisni podniz
ure::stroški <<'Podniz je:' <<newstr<< ' n';
}
ulov (consture::izven dosega) {
ure::cerr << „Položaj je izven dosega. n';
}
vrnitev 0;
}

Izhod:

V skladu s kodo je glavna vrednost niza, LinuxHint vrednost začetnega položaja pa je 11, ki ne obstaja. Torej je bila izjema ustvarjena in sporočilo o napaki je bilo natisnjeno po izvedbi kode.

Primer 4: Uporaba substr () za razdelitev niza

Naslednji primer prikazuje uporabo funkcije substr () za razdelitev niza na podlagi razmejevalnika. Funkcija find () je bila uporabljena za iskanje položaja ločilnika, funkcija erase () pa za odstranjevanje razcepljenega niza z ločilnikom iz glavnega niza. Zanka 'while' je uporabila za iskanje vseh položajev ločilnika v glavnem nizu in shranjevanje razcepljene vrednosti v vektorsko polje. Nato so bile natisnjene vrednosti vektorske matrike.

// Vključi potrebne knjižnice
#vključi
#vključi
#vključi

intglavni(){
// Določimo niz
ure::vrvicastringData= 'PHP: C ++: Python:';
// Določimo ločilo
ure::vrvicaseparator= ':';
// Razglasimo vektorsko spremenljivko
ure::vektorjezikov{};
// Razglasi celoštevilsko spremenljivko
intpoložaj;
// Razglasimo spremenljivko niza
ure::vrvicaoutstr;
/ *
Niz razdelite s funkcijo substr ()
in dodajanje razdeljene besede v vektor
* /

medtem ((položaj=stringData.najti(separator)) !=ure::vrvica::npos) {
jezikov.porini nazaj(stringData.substr(0, položaj));
stringData.izbrisati(0, položaj+separator.dolžino());
}
// Natisni vse razdeljene besede
za (const samodejno &outstr:jezikov) {
ure::stroški <<outstr<<ure::endl;
}
vrnitev 0;
}

Izhod:

V skladu s kodo je vrednost glavnega niza PHP: C ++: Python vrednost ločevalnika pa je: : ' . Po izvedbi zgornjega skripta se prikaže naslednji izhod.

Zaključek

Glavni namen uporabe funkcije substr () je pridobiti podniz iz niza z omembo začetnega položaja in dolžine podniz. Različne uporabe te funkcije so bile razložene v tej vadnici z uporabo več primerov, ki so novim uporabnikom C ++ pomagali, da jo pravilno uporabljajo v svoji kodi.