Funktsiooni substr () kasutamine C ++ -is

How Use Substr Function C



Stringist mis tahes osa lõikamise viisi nimetatakse alamstringiks. Funktsioon substr () eksisteerib C ++, et genereerida uus string, lõigates stringist välja teatud osa. The string.h selle funktsiooni kasutamiseks tuleb kaasata raamatukogu fail. Sellel funktsioonil on kaks argumenti. Esimene argument sisaldab uue stringi lähtepositsiooni ja teine ​​argument stringi pikkust. Selles juhendis on selgitatud funktsiooni substr () kasutamist C ++ -is.

Eeltingimus

Enne selle õpetuse näidete kontrollimist peate kontrollima, kas kompilaator g ++ on süsteemi installitud või mitte. Kui kasutate Visual Studio koodi, installige käivitatava koodi loomiseks vajalikud laiendused C ++ lähtekoodi kompileerimiseks. Siin on C ++ koodi koostamiseks ja käivitamiseks kasutatud rakendust Visual Studio Code.





Süntaks

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



Siin sisaldab esimene argument lähtepositsiooni, kust alamstringi alustatakse, ja teine ​​argument sisaldab alamstringi pikkust. Funktsioon tagastab alamstringi, kui on antud kehtiv lähtepositsioon ja pikkus. Selle funktsiooni erinevaid kasutusviise on näidatud selle õpetuse järgmises osas.



Näide 1: substr () lihtne kasutamine

Järgmine näide näitab funktsiooni substr () kõige tavalisemat ja lihtsamat kasutamist. Stringi väärtusest alamstringi loomiseks looge järgmise koodiga C ++ -fail. Stringimuutujale on määratud mitmest sõnast koosnev string. Järgmisena on kehtivas lähtepositsioonis ja alamstringi pikkuses funktsiooni substr () argumendi väärtused. Nii algne string kui ka alamstring prinditakse pärast koodi täitmist.





// Kaasa vajalikud teegid
#kaasake
#kaasake


intpeamine() {
// Määra string muutuja
tundi::stringoriginaalstr='Tere tulemast Linuxhintisse';
// Lõika alamstring substr () abil
tundi::stringnewstr=originaalstr.alamstr (üksteist,9);
// Prindi algne string
tundi::maksma <<'Algne string on:' <<originaalstr<< ' n';
// Printige alamstring
tundi::maksma <<'Alamstring on:' <<newstr<< ' n';

tagasi 0;
}

Väljund:

Koodi järgi on algne string „ Tere tulemast LinuxHinti ‘. 11 on andnud alamstringi lähtepositsiooniks tähe „L” positsiooni ja 9 on andnud alamstringi pikkuse väärtuseks. ' LinuxHint 'On pärast koodi täitmist tagastanud funktsiooni substr () väljundina.



Näide 2: alamstringi () kasutamine konkreetse stringi asukoha põhjal

Järgmine kood genereerib alamstringi pärast konkreetse stringi asukoha otsimist. Koodi testimiseks looge järgmise koodiga C ++ -fail. Koodis on määratletud mitme sõna stringiväärtus. Järgmisena otsitakse konkreetse stringi asukohta põhistringis, kasutades funktsiooni find (). Funktsiooni substr () on kasutatud alamstringi genereerimiseks alates stringi algusest kuni positsiooni väärtuseni, mille funktsioon find () tagastab.

// Kaasa vajalikud teegid
#kaasake
#kaasake
kasutades nimeruumtundi;

intpeamine()
{
tundi::stringstrData= 'Mulle meeldib C ++ programmeerimine';

// Leiame '-' asukoha str.find () abil
intpositsiooni=strData.leida('programmeerimine');

// Alamstringi saame selle mustrini
tundi::stringnewstr=strData.alamstr(0, positsioon);

tundi::maksma <<strData<< ' n';
tundi::maksma <<newstr<< ' n';

tagasi 0;
}

Väljund:

Koodi järgi on peamine stringi väärtus, Mulle meeldib C ++ programmeerimine ja otsingustringi väärtus on ' programmeerimine ” mis on olemas põhistringis. Niisiis, väljund on ' Mulle meeldib C ++ 'Pärast koodi täitmist.

Näide 3: substr () kasutamine erandkorraldusega

Funktsiooni substr () on järgmises koodis kasutatud eranditöötlusega. Erand luuakse juhul, kui funktsioonis substr () on kehtetu lähtepositsioon. Koodi testimiseks looge järgmise koodiga C ++ -fail. Prooviplokis on määratud ühe sõna stringiväärtus ja funktsioonis substr () on kasutatud sobimatut lähtepositsiooni, mis tekitab erandi ja prindib veateate.

// Kaasa vajalikud teegid
#kaasake
#kaasake

intpeamine() {
proovige{

// Määra string muutuja
tundi::stringoriginaalstr='Linuxhint';
// Lõika alamstring substr () abil
tundi::stringnewstr=originaalstr.alamstr (üksteist,9);
// Printige alamstring
tundi::maksma <<'Alamstring on:' <<newstr<< ' n';
}
saak (consttundi::väljas pool leviala) {
tundi::cerr << 'Positsioon on vahemikust väljas. n';
}
tagasi 0;
}

Väljund:

Koodi järgi on peamine stringi väärtus, LinuxHint ja lähtepositsiooni väärtus on 11, mida pole olemas. Seega on erand loodud ja veateade pärast koodi täitmist trükitud.

Näide 4: alamstringi () kasutamine stringi jagamiseks

Järgmine näide näitab funktsiooni substr () kasutamist stringi jagamiseks eraldaja alusel. Funktsiooni find () on kasutatud eraldaja positsiooni otsimiseks ja kustutamisfunktsiooni () abil eraldatud jada eraldusjoone eemaldamiseks põhistringist. Silmust „samas” on kasutatud peamise stringi eraldaja kõigi positsioonide leidmiseks ja jagatud väärtuse salvestamiseks vektormassiivi. Järgmisena on trükitud vektormassiivi väärtused.

// Kaasa vajalikud teegid
#kaasake
#kaasake
#kaasake

intpeamine(){
// Määratle string
tundi::stringstringData= 'PHP: C ++: Python:';
// Määrake eraldaja
tundi::stringeraldaja= ':';
// Vektori muutuja deklareerimine
tundi::vektorkeeli{};
// Täisarvulise muutuja deklareerimine
intpositsiooni;
// Stringi muutuja deklareerimine
tundi::stringületama;
/ *
Jagage string funktsiooni substr () abil
ja tükeldatud sõna lisamine vektorisse
* /

samas ((positsiooni=stringData.leida(eraldaja)) !=tundi::string::npos) {
keeli.lükka tagasi(stringData.alamstr(0, positsioon));
stringData.kustutada(0, positsioon+eraldaja.pikkus());
}
// Prindi kõik lõhestatud sõnad
eest (const auto &ületama:keeli) {
tundi::maksma <<ületama<<tundi::endl;
}
tagasi 0;
}

Väljund:

Koodi järgi on peamine stringi väärtus PHP: C ++: Python ja eraldaja väärtus on: ' : ' . Pärast ülaltoodud skripti täitmist ilmub järgmine väljund.

Järeldus

Funktsiooni substr () kasutamise peamine eesmärk on alamstringi toomine stringist, mainides alamstringi lähtepositsiooni ja pikkust. Selle õpetuse erinevaid kasutusvõimalusi on selles juhendis selgitatud, kasutades mitmeid näiteid, mis aitavad uutel C ++ kasutajatel seda oma koodis õigesti kasutada.