Kaip naudoti substr () funkciją C ++

How Use Substr Function C



Būdas, kaip iškirpti bet kurią eilutės dalį, vadinamas antrine eilute. Funkcija substr () egzistuoja C ++, kad būtų sukurta nauja eilutė, iškirpiant tam tikrą eilutės dalį. The eilutė.h norint naudoti šią funkciją, reikia įtraukti bibliotekos failą. Ši funkcija turi du argumentus. Pirmajame argumente yra naujos eilutės pradinė padėtis, o antrajame - eilutės ilgis. Šiame vadove paaiškinta, kaip naudoti funkciją substr () C ++.

Būtina sąlyga

Prieš tikrindami šios pamokos pavyzdžius, turite patikrinti, ar sistemoje „g ++“ kompiliatorius yra įdiegtas, ar ne. Jei naudojate „Visual Studio Code“, įdiekite reikiamus plėtinius, kad sudarytumėte C ++ šaltinio kodą, kad sukurtumėte vykdomąjį kodą. Čia „Visual Studio Code“ programa buvo naudojama C ++ kodui sudaryti ir vykdyti.







Sintaksė

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



Čia pirmajame argumente yra pradinė padėtis, nuo kurios bus pradėta kurti antrinė eilutė, o antrajame-antrinės eilutės ilgis. Funkcija grąžins antrinę eilutę, jei bus nurodyta galiojanti pradinė padėtis ir ilgis. Įvairūs šios funkcijos naudojimo būdai parodyti kitoje šios pamokos dalyje.



1 pavyzdys: paprastas substr () naudojimas

Šis pavyzdys rodo dažniausiai ir paprasčiausiai naudojamą funkciją substr (). Sukurkite C ++ failą su šiuo kodu, kad sugeneruotumėte antrinę eilutę iš eilutės vertės. Į eilutės kintamąjį priskirta kelių žodžių eilutė. Toliau galiojanti pradinė padėtis ir antrinės eilutės ilgis turi funkcijos substr () argumentų reikšmes. Įvykdžius kodą, bus atspausdinta ir originali eilutė, ir antrinė eilutė.





// Įtraukti reikiamas bibliotekas
#įtraukti
#įtraukti


tarptpagrindinis() {
// Apibrėžkite eilutės kintamąjį
valandų::eilutėoriginalstr=„Sveiki atvykę į„ Linuxhint “;
// Iškirpkite antrinę eilutę naudodami substr ()
valandų::eilutėnewstr=originalstr.substr (vienuolika,9);
// Spausdinti originalią eilutę
valandų::kaina <<„Originali eilutė yra:“ <<originalstr<< ' n';
// Spausdinti antrinę eilutę
valandų::kaina <<„Antrinė eilutė yra:“ <<newstr<< ' n';

grįžti 0;
}

Išėjimas:

Pagal kodą, pradinė eilutė yra „ Sveiki atvykę į „LinuxHint“ ‘. 11 nurodė kaip antrinės eilutės pradinę padėtį, kuri yra „L“ simbolio padėtis, o 9-kaip antrinės eilutės ilgio reikšmę. ' Linux patarimas „Grįžo kaip funkcijos substr () išvestis įvykdžius kodą.



2 pavyzdys: Substr () naudojimas pagal konkrečios eilutės padėtį

Šis kodas sugeneruos antrinę eilutę, kai bus ieškoma konkrečios eilutės padėties. Norėdami išbandyti kodą, sukurkite C ++ failą su šiuo kodu. Kode yra apibrėžta kelių žodžių eilutės reikšmė. Tada tam tikros eilutės pozicijos ieškoma pagrindinėje eilutėje, naudojant funkciją find (). Funkcija substr () buvo naudojama generuoti antrinę eilutę, pradedant nuo eilutės pradžios iki pozicijos vertės, kurią grąžins funkcija find ().

// Įtraukti reikiamas bibliotekas
#įtraukti
#įtraukti
naudojant vardų sritisvalandų;

tarptpagrindinis()
{
valandų::eilutėstrData= „Man patinka C ++ programavimas“;

// Raskime „-“ padėtį naudodami str.find ()
tarptpoziciją=strData.rasti('programavimas');

// Mes gausime antrinę eilutę iki šio modelio
valandų::eilutėnewstr=strData.substr(0, pozicija);

valandų::kaina <<strData<< ' n';
valandų::kaina <<newstr<< ' n';

grįžti 0;
}

Išėjimas:

Pagal kodą pagrindinė eilutės vertė yra, Man patinka C ++ programavimas o paieškos eilutės vertė yra „ programavimas “ kuris egzistuoja pagrindinėje eilutėje. Taigi, rezultatas yra „ Man patinka C ++ “Įvykdžius kodą.

3 pavyzdys: Naudojant substr (), išskyrus tvarkymą

Funkcija substr () buvo naudojama su išimčių tvarkymu šiame kode. Išimtis bus sukurta, jei funkcija substr () bus nurodyta netinkama pradinė padėtis. Norėdami išbandyti kodą, sukurkite C ++ failą su šiuo kodu. Bandymo bloke buvo priskirta vieno žodžio eilutės reikšmė, o substr () funkcijoje buvo naudojama netinkama pradinė pozicija, kuri iškels išimtį ir išspausdins klaidos pranešimą.

// Įtraukti reikiamas bibliotekas
#įtraukti
#įtraukti

tarptpagrindinis() {
bandyti{

// Apibrėžkite eilutės kintamąjį
valandų::eilutėoriginalstr=„Linuxhint“;
// Iškirpkite antrinę eilutę naudodami substr ()
valandų::eilutėnewstr=originalstr.substr (vienuolika,9);
// Spausdinti antrinę eilutę
valandų::kaina <<„Antrinė eilutė yra:“ <<newstr<< ' n';
}
pagauti (konstvalandų::nepasiekiamas) {
valandų::cerr << „Pozicija yra už diapazono ribų. n';
}
grįžti 0;
}

Išėjimas:

Pagal kodą pagrindinė eilutės vertė yra, Linux patarimas o pradinės pozicijos vertė yra 11, kurios nėra. Taigi, buvo sukurta išimtis ir įvykdžius kodą buvo išspausdintas klaidos pranešimas.

4 pavyzdys: Substr () naudojimas eilutei padalyti

Šiame pavyzdyje parodytas funkcijos substr () naudojimas, norint padalyti eilutę pagal ribotuvą. Funkcija „find“ („) buvo naudojama ieškant skiriamųjų ženklų padėties, o ištrynimo () funkcija buvo naudojama norint pašalinti suskaidytą eilutę su ribotuvu iš pagrindinės eilutės. Ciklas „while“ naudojamas norint rasti visas skiriamųjų ženklų pozicijas pagrindinėje eilutėje ir išsaugoti suskaidytą vertę vektoriaus masyve. Toliau buvo išspausdintos vektoriaus masyvo vertės.

// Įtraukti reikiamas bibliotekas
#įtraukti
#įtraukti
#įtraukti

tarptpagrindinis(){
// Apibrėžkite eilutę
valandų::eilutėstringData= „PHP: C ++: Python:“;
// Apibrėžkite separatorių
valandų::eilutėseparatorius= ':';
// Deklaruoti vektorinį kintamąjį
valandų::vektoriuskalbomis{};
// Deklaruoti sveikųjų skaičių kintamąjį
tarptpoziciją;
// Deklaruoti eilutės kintamąjį
valandų::eilutėpranoksta;
/ *
Padalinkite eilutę naudodami funkciją substr ()
ir suskaidytą žodį pridedant prie vektoriaus
* /

tuo tarpu ((poziciją=stringData.rasti(separatorius)) !=valandų::eilutė::npos) {
kalbomis.pastumti atgal(stringData.substr(0, pozicija));
stringData.ištrinti(0, pozicija+separatorius.ilgio());
}
// Spausdinti visus suskaidytus žodžius
dėl (konst automatinis &pranoksta:kalbomis) {
valandų::kaina <<pranoksta<<valandų::endl;
}
grįžti 0;
}

Išėjimas:

Pagal kodą pagrindinė eilutės vertė yra PHP: C ++: „Python“ o ribotuvo vertė yra „ : ' . Įvykdžius aukščiau pateiktą scenarijų, pasirodys ši išvestis.

Išvada

Pagrindinis funkcijos substr () naudojimo tikslas yra iš eilutės gauti antrinę eilutę, nurodant pradinę poziciją ir antrinės eilutės ilgį. Įvairūs šios funkcijos naudojimo būdai buvo paaiškinti šiame vadove, naudojant kelis pavyzdžius, padedančius naujiems „C ++“ vartotojams tinkamai naudoti savo kodą.