Forudsætning
Inden du kontrollerer eksemplerne på denne vejledning, skal du kontrollere, at g ++ - kompilatoren er installeret eller ikke i systemet. Hvis du bruger Visual Studio Code, skal du installere de nødvendige udvidelser for at kompilere C ++ - kildekoden for at oprette den eksekverbare kode. Her er Visual Studio Code -applikationen blevet brugt til at kompilere og eksekvere C ++ - koden.
Syntaks
strengsubstrat (size_t pos = 0, size_t len = npos) const;
Her indeholder det første argument startpositionen, hvorfra understrengen startes, og det andet argument indeholder længden af understrengen. Funktionen returnerer understrengen, hvis den gyldige startposition og længde er angivet. De forskellige anvendelser af denne funktion er vist i den næste del af denne vejledning.
Eksempel 1: Enkel anvendelse af substr ()
Følgende eksempel viser den mest almindelige og enkle brug af substra () -funktionen. Opret en C ++ - fil med følgende kode for at generere en understreng ud fra en strengværdi. En streng med flere ord er blevet tildelt en strengvariabel. Dernæst har den gyldige startposition og længden af understrengen i argumentværdierne for funktionen substr (). Både den originale streng og delstrengen udskrives, når koden er udført.
// Inkluder nødvendige biblioteker
#omfatte
#omfatte
intvigtigste() {
// Definer en strengvariabel
timer::snororiginalstr='Velkommen til Linuxhint';
// Klip understrengen ved hjælp af substr ()
timer::snornewstr=originalstr.substr (elleve,9);
// Udskriv den originale streng
timer::koste <<'Den originale streng er:' <<originalstr<< ' n';
// Udskriv understrengen
timer::koste <<'Delstrengen er:' <<newstr<< ' n';
Vend tilbage 0;
}
Produktion:
Ifølge koden er den originale streng ' Velkommen til LinuxHint '. 11 har givet som startpositionen for understrengen, der er positionen for 'L'-tegnet, og 9 har givet som længdeværdien af understrengen. ' LinuxHint 'Er vendt tilbage som output fra substr () -funktionen efter udførelse af koden.
Eksempel 2: Brug af substr () baseret på placeringen af en bestemt streng
Den følgende kode genererer understrengen efter at have søgt i den særlige strengs position. Opret en C ++ - fil med følgende kode for at teste koden. En strengværdi for de flere ord er defineret i koden. Derefter søges placeringen af en bestemt streng i hovedstrengen ved hjælp af funktionen find (). Substra () -funktionen er blevet brugt til at generere understrengen fra begyndelsen af strengen til den positionsværdi, der vil blive returneret af funktionen find ().
// Inkluder nødvendige biblioteker#omfatte
#omfatte
ved brug af navnerumtimer;
intvigtigste()
{
timer::snorstrData= 'Jeg kan godt lide C ++ programmering';
// Lad os finde placeringen af '-' ved hjælp af str.find ()
intposition=strData.Find('programmering');
// Vi får substringen indtil dette mønster
timer::snornewstr=strData.substr(0, position);
timer::koste <<strData<< ' n';
timer::koste <<newstr<< ' n';
Vend tilbage 0;
}
Produktion:
Ifølge koden er hovedstrengværdien, Jeg kan godt lide C ++ programmering og værdien af søgestrengen er, ' programmering ’ der findes i hovedstrengen. Så output er, ' Jeg kan godt lide C ++ 'Efter udførelse af koden.
Eksempel 3: Brug af substr () med undtagelseshåndtering
Substra () -funktionen er blevet brugt med undtagelseshåndtering i følgende kode. Undtagelsen genereres, hvis den ugyldige startposition er angivet i substr () -funktionen. Opret en C ++ - fil med følgende kode for at teste koden. I forsøgsblokken er der tildelt en strengværdi på ét ord, og der er brugt en ugyldig startposition i substr () -funktionen, der frembringer en undtagelse og udskriver fejlmeddelelsen.
// Inkluder nødvendige biblioteker#omfatte
#omfatte
intvigtigste() {
prøve{
// Definer en strengvariabel
timer::snororiginalstr='Linuxhint';
// Klip understrengen ved hjælp af substr ()
timer::snornewstr=originalstr.substr (elleve,9);
// Udskriv understrengen
timer::koste <<'Delstrengen er:' <<newstr<< ' n';
}
fangst (konsttimer::uden for rækkevidde) {
timer::cerr << 'Stillingen er uden for rækkevidde. n';
}
Vend tilbage 0;
}
Produktion:
Ifølge koden er hovedstrengværdien, LinuxHint og startpositionens værdi er 11, der ikke findes. Så undtagelsen er genereret, og fejlmeddelelsen er blevet udskrevet efter udførelse af koden.
Eksempel 4: Brug af substr () til at dele strengen
Følgende eksempel viser brugen af substra () funktionen til at opdele en streng baseret på en afgrænser. Find () -funktionen er blevet brugt til at søge i afgrænsningspositionen, og slette () -funktionen er blevet brugt til at fjerne den opdelte streng med afgrænseren fra hovedstrengen. 'While' -sløjfen har brugt til at finde alle positioner for afgrænseren i hovedstrengen og gemme den opdelte værdi i vektorarrayet. Dernæst er værdierne for vektorarrayet blevet udskrevet.
// Inkluder nødvendige biblioteker#omfatte
#omfatte
#omfatte
intvigtigste(){
// Definer strengen
timer::snorstringData= 'PHP: C ++: Python:';
// Definer separatoren
timer::snorseparator= ':';
// Deklarér vektorvariablen
timer::vektorSprog{};
// Deklarer heltalsvariabel
intposition;
// Deklarere strengvariabel
timer::snoroutstr;
/ *
Opdel strengen ved hjælp af funktionen substr ()
og tilføjelse af det opdelte ord i vektoren
* /
mens ((position=stringData.Find(separator)) !=timer::snor::npos) {
Sprog.skub tilbage(stringData.substr(0, position));
stringData.slette(0, position+separator.længde());
}
// Udskriv alle splittede ord
til (konst auto &outstr:Sprog) {
timer::koste <<outstr<<timer::endl;
}
Vend tilbage 0;
}
Produktion:
Ifølge koden er hovedstrengværdien PHP: C ++: Python og værdien af afgrænseren er, ' : ' . Følgende output vises efter udførelse af ovenstående script.
Konklusion
Hovedformålet med at bruge funktionen substr () er at hente en delstreng fra en streng ved at nævne startpositionen og længden af understrengen. De forskellige anvendelser af denne funktion er blevet forklaret i denne vejledning ved at bruge flere eksempler til at hjælpe de nye C ++ - brugere med at bruge den korrekt i deres kode.