Jak používat funkci substr () v C ++

How Use Substr Function C



Způsob vyjmutí jakékoli části z řetězce se nazývá dílčí řetězec. Funkce substr () existuje v C ++ a generuje nový řetězec vyjmutím konkrétní části z řetězce. The řetězec.h k použití této funkce je nutné zahrnout soubor knihovny. Tato funkce má dva argumenty. První argument obsahuje počáteční pozici nového řetězce a druhý argument obsahuje délku řetězce. V tomto kurzu byl vysvětlen způsob použití funkce substr () v C ++.

Předpoklad

Před kontrolou příkladů tohoto kurzu musíte zkontrolovat, zda je kompilátor g ++ nainstalován nebo není v systému. Pokud používáte kód Visual Studio, nainstalujte potřebná rozšíření ke kompilaci zdrojového kódu C ++ k vytvoření spustitelného kódu. Zde byla aplikace Visual Studio Code použita ke kompilaci a spuštění kódu C ++.







Syntax

řetězec substr (size_t pos = 0, size_t len ​​= npos) const;



Zde první argument obsahuje počáteční pozici, odkud bude dílčí řetězec spuštěn, a druhý argument obsahuje délku dílčího řetězce. Funkce uvede dílčí řetězec, pokud je uvedena platná počáteční pozice a délka. Různá použití této funkce byla ukázána v další části tohoto kurzu.



Příklad 1: Jednoduché použití substr ()

Následující příklad ukazuje nejběžnější a nejjednodušší použití funkce substr (). Vytvořte soubor C ++ s následujícím kódem, který vygeneruje podřetězec z hodnoty řetězce. Řetězec více slov byl přiřazen do řetězcové proměnné. Dále má platná počáteční pozice a délka dílčího řetězce v hodnotách argumentů funkce substr (). Původní řetězec i podřetězec budou vytištěny po spuštění kódu.





// Zahrňte potřebné knihovny
#zahrnout
#zahrnout


inthlavní() {
// Definujte proměnnou řetězce
hodiny::tětivaoriginalstr='Welcome to Linuxhint';
// Odřízněte dílčí řetězec pomocí substr ()
hodiny::tětivanewstr=originalstr.substr (jedenáct,9);
// Vytiskněte původní řetězec
hodiny::náklady <<'Původní řetězec je:' <<originalstr<< ' n';
// Vytiskněte dílčí řetězec
hodiny::náklady <<'Podřetězec je:' <<newstr<< ' n';

vrátit se 0;
}

Výstup:

Podle kódu je původní řetězec „ Vítejte v LinuxHintu ‘. 11 udává počáteční pozici dílčího řetězce, což je poloha znaku „L“, a 9 udává hodnotu délky dílčího řetězce. ' Linux Tip ‘Se vrátil jako výstup funkce substr () po provedení kódu.



Příklad 2: Použití substr () na základě polohy konkrétního řetězce

Následující kód vygeneruje dílčí řetězec po vyhledání pozice konkrétního řetězce. K otestování kódu vytvořte soubor C ++ s následujícím kódem. V kódu byla definována řetězcová hodnota více slov. Dále se hledá pozice konkrétního řetězce v hlavním řetězci pomocí funkce find (). Funkce substr () byla použita ke generování dílčího řetězce počínaje od začátku řetězce na hodnotu pozice, která bude vrácena funkcí find ().

// Zahrňte potřebné knihovny
#zahrnout
#zahrnout
použitím jmenný prostorhodiny;

inthlavní()
{
hodiny::tětivastrData= „Mám rád programování v C ++“;

// Pojďme najít polohu '-' pomocí str.find ()
intpozice=strData.nalézt('programování');

// Do tohoto vzoru získáme podřetězec
hodiny::tětivanewstr=strData.substr(0, pozice);

hodiny::náklady <<strData<< ' n';
hodiny::náklady <<newstr<< ' n';

vrátit se 0;
}

Výstup:

Podle kódu je hlavní hodnota řetězce, Mám rád programování v C ++ a hodnota hledaného řetězce je „ programování ‘ který existuje v hlavním řetězci. Výstupem tedy je „ Mám rád C ++ ‘Po provedení kódu.

Příklad 3: Použití substr () se zpracováním výjimek

V následujícím kódu byla použita funkce substr () se zpracováním výjimek. Výjimka bude generována, pokud je ve funkci substr () uvedena neplatná počáteční pozice. K otestování kódu vytvořte soubor C ++ s následujícím kódem. V bloku try byla přiřazena řetězcová hodnota jednoho slova a ve funkci substr () byla použita neplatná počáteční pozice, která vyvolá výjimku a vytiskne chybovou zprávu.

// Zahrňte potřebné knihovny
#zahrnout
#zahrnout

inthlavní() {
Snaž se{

// Definujte proměnnou řetězce
hodiny::tětivaoriginalstr='Linuxhint';
// Odřízněte dílčí řetězec pomocí substr ()
hodiny::tětivanewstr=originalstr.substr (jedenáct,9);
// Vytiskněte dílčí řetězec
hodiny::náklady <<'Podřetězec je:' <<newstr<< ' n';
}
úlovek (konsthodiny::mimo dosah) {
hodiny::cerr << 'Pozice je mimo rozsah.' n';
}
vrátit se 0;
}

Výstup:

Podle kódu je hlavní hodnota řetězce, Linux Tip a hodnota počáteční pozice je 11, která neexistuje. Byla tedy vygenerována výjimka a po spuštění kódu byla vytištěna chybová zpráva.

Příklad 4: Rozdělení řetězce pomocí substr ()

Následující příklad ukazuje použití funkce substr () k rozdělení řetězce na základě oddělovače. Funkce find () byla použita k hledání pozice oddělovače a funkce erase () byla použita k odstranění rozděleného řetězce s oddělovačem z hlavního řetězce. Smyčka „while“ použila k nalezení všech pozic oddělovače v hlavním řetězci a uložení rozdělené hodnoty do vektorového pole. Dále byly vytištěny hodnoty vektorového pole.

// Zahrňte potřebné knihovny
#zahrnout
#zahrnout
#zahrnout

inthlavní(){
// Definujte řetězec
hodiny::tětivastringData= 'PHP: C ++: Python:';
// Definujte oddělovač
hodiny::tětivaoddělovač= ':';
// Deklarujte vektorovou proměnnou
hodiny::vektorjazyky{};
// Deklarujte celočíselnou proměnnou
intpozice;
// Deklarujte proměnnou řetězce
hodiny::tětivavnější;
/ *
Rozdělte řetězec pomocí funkce substr ()
a přidání rozděleného slova do vektoru
* /

zatímco ((pozice=stringData.nalézt(oddělovač)) !=hodiny::tětiva::npos) {
jazyky.zatlačit zpátky(stringData.substr(0, pozice));
stringData.vymazat(0, pozice+oddělovač.délka());
}
// Tisk všech rozdělených slov
pro (konst auto &vnější:jazyky) {
hodiny::náklady <<vnější<<hodiny::endl;
}
vrátit se 0;
}

Výstup:

Podle kódu je hlavní hodnota řetězce PHP: C ++: Python a hodnota oddělovače je „ : ‘ . Po spuštění výše uvedeného skriptu se zobrazí následující výstup.

Závěr

Hlavním účelem použití funkce substr () je načíst podřetězec z řetězce uvedením počáteční polohy a délky dílčího řetězce. Různá použití této funkce byla v tomto kurzu vysvětlena pomocí několika příkladů, které pomáhají novým uživatelům C ++ správně je používat ve svém kódu.