Så här använder du funktionen substr () i C ++

How Use Substr Function C



Sättet att skära någon del från en sträng kallas en delsträng. Substra () -funktionen finns i C ++ för att generera en ny sträng genom att klippa en viss del från en sträng. De string.h biblioteksfil krävs för att använda den här funktionen. Denna funktion har två argument. Det första argumentet innehåller startpositionen för den nya strängen, och det andra argumentet innehåller strängens längd. Sättet att använda funktionen substr () i C ++ har förklarats i denna handledning.

Nödvändig förutsättning

Innan du kontrollerar exemplen på denna handledning måste du kontrollera att g ++ - kompilatorn är installerad eller inte i systemet. Om du använder Visual Studio Code installerar du de nödvändiga tilläggen för att kompilera C ++ - källkoden för att skapa den körbara koden. Här har programmet Visual Studio Code använts för att kompilera och köra C ++ - koden.







Syntax

strängsubstrat (size_t pos = 0, size_t len ​​= npos) const;



Här innehåller det första argumentet startpositionen från vilken delsträngen kommer att startas, och det andra argumentet innehåller längden på delsträngen. Funktionen returnerar delsträngen om giltig startposition och längd anges. De olika användningsområdena för denna funktion har visats i nästa del av denna handledning.



Exempel 1: Enkel användning av substr ()

Följande exempel visar den vanligaste och enklaste användningen av funktionen substr (). Skapa en C ++ - fil med följande kod för att generera en delsträng från ett strängvärde. En sträng med flera ord har tilldelats en strängvariabel. Därefter har den giltiga utgångsläget och längden på delsträngen i argumentvärdena för funktionen substr (). Både originalsträngen och delsträngen kommer att skrivas ut efter att koden har körts.





// Inkludera nödvändiga bibliotek
#omfatta
#omfatta


inthuvud() {
// Definiera en strängvariabel
timmar::strängoriginalstr='Välkommen till Linuxhint';
// Klipp delsträngen med hjälp av substr ()
timmar::strängnewstr=originalstr.substr (elva,9);
// Skriv ut originalsträngen
timmar::kosta <<'Den ursprungliga strängen är:' <<originalstr<< ' n';
// Skriv ut understrängen
timmar::kosta <<'Delsträngen är:' <<newstr<< ' n';

lämna tillbaka 0;
}

Produktion:

Enligt koden är den ursprungliga strängen ' Välkommen till LinuxHint ’. 11 har angett som startpositionen för delsträngen som är positionen för 'L' -tecknet, och 9 har angett som längdvärdet för delsträngen. ' LinuxHint 'Har återvänt som utsignalen från funktionen substr () efter att koden har körts.



Exempel 2: Använda substr () baserat på positionen för en specifik sträng

Följande kod genererar delsträngen efter att ha sökt efter positionen för den specifika strängen. Skapa en C ++ - fil med följande kod för att testa koden. Ett strängvärde för de flera orden har definierats i koden. Därefter söks positionen för en viss sträng i huvudsträngen med hjälp av funktionen find (). Substra () -funktionen har använts för att generera delsträngen från början av strängen till det positionsvärde som kommer att returneras av funktionen find ().

// Inkludera nödvändiga bibliotek
#omfatta
#omfatta
använder sig av namnrymdtimmar;

inthuvud()
{
timmar::strängstrData= 'Jag gillar C ++ - programmering';

// Låt oss hitta positionen för '-' med str.find ()
intplacera=strData.hitta('programmering');

// Vi får delsträngen tills detta mönster
timmar::strängnewstr=strData.substr(0, position);

timmar::kosta <<strData<< ' n';
timmar::kosta <<newstr<< ' n';

lämna tillbaka 0;
}

Produktion:

Enligt koden är huvudsträngvärdet, Jag gillar C ++ programmering och värdet på söksträngen är ' programmering' som finns i huvudsträngen. Så utsignalen är ' Jag gillar C ++ 'Efter att koden har körts.

Exempel 3: Använda substr () med undantagshantering

Substra () -funktionen har använts med undantagshantering i följande kod. Undantaget kommer att genereras om den ogiltiga startpositionen anges i substr () -funktionen. Skapa en C ++ - fil med följande kod för att testa koden. I försöksblocket har ett strängvärde på ett ord tilldelats och en ogiltig utgångsposition har använts i funktionen substr () som kommer att göra ett undantag och skriva ut felmeddelandet.

// Inkludera nödvändiga bibliotek
#omfatta
#omfatta

inthuvud() {
Prova{

// Definiera en strängvariabel
timmar::strängoriginalstr='Linuxhint';
// Klipp delsträngen med hjälp av substr ()
timmar::strängnewstr=originalstr.substr (elva,9);
// Skriv ut understrängen
timmar::kosta <<'Delsträngen är:' <<newstr<< ' n';
}
fånga (konsttimmar::utom räckhåll) {
timmar::cerr << 'Positionen är utanför intervallet. n';
}
lämna tillbaka 0;
}

Produktion:

Enligt koden är huvudsträngvärdet, LinuxHint och startpositionens värde är 11 som inte existerar. Så undantaget har genererats och felmeddelandet har skrivits ut efter att koden har körts.

Exempel 4: Använda substr () för att dela strängen

Följande exempel visar användningen av funktionen substr () för att dela en sträng baserad på en avgränsare. Funktionen find () har använts för att söka mellan avgränsarens position och radera () -funktionen har använts för att ta bort den delade strängen med avgränsaren från huvudsträngen. 'While' -slingan har använts för att hitta alla positioner för avgränsaren i huvudsträngen och lagra det delade värdet i vektormatrisen. Därefter har värdena för vektormatrisen skrivits ut.

// Inkludera nödvändiga bibliotek
#omfatta
#omfatta
#omfatta

inthuvud(){
// Definiera strängen
timmar::strängstringData= 'PHP: C ++: Python:';
// Definiera avgränsaren
timmar::strängseparator= ':';
// Deklarera vektorvariabeln
timmar::vektorspråk{};
// Deklarera heltalsvariabel
intplacera;
// Deklarera strängvariabel
timmar::strängoutstr;
/ *
Dela strängen med hjälp av substr () -funktionen
och lägga till det delade ordet i vektorn
* /

medan ((placera=stringData.hitta(separator)) !=timmar::sträng::npos) {
språk.trycka tillbaka(stringData.substr(0, position));
stringData.radera(0, position+separator.längd());
}
// Skriv ut alla delade ord
för (konst bil &outstr:språk) {
timmar::kosta <<outstr<<timmar::endl;
}
lämna tillbaka 0;
}

Produktion:

Enligt koden är huvudsträngvärdet PHP: C ++: Python och avgränsarens värde är ' : ’ . Följande utdata visas efter att ovanstående skript har körts.

Slutsats

Huvudsyftet med att använda funktionen substr () är att hämta en delsträng från en sträng genom att nämna startpositionen och längden på delsträngen. De olika användningsområdena för denna funktion har förklarats i denna handledning med hjälp av flera exempel för att hjälpa de nya C ++ - användarna att använda den korrekt i sin kod.