Ako používať funkciu substr () v C ++

How Use Substr Function C



Spôsob, ako vystrihnúť akúkoľvek časť z reťazca, sa nazýva podreťazec. Funkcia substr () existuje v C ++ na generovanie nového reťazca vystrihnutím konkrétnej časti z reťazca. The reťazec.h Na použitie tejto funkcie je potrebný súbor knižnice. Táto funkcia má dva argumenty. Prvý argument obsahuje počiatočnú pozíciu nového reťazca a druhý argument obsahuje dĺžku reťazca. V tomto návode bol vysvetlený spôsob použitia funkcie substr () v C ++.

Predpoklad

Pred kontrolou príkladov tohto tutoriálu musíte skontrolovať, či je kompilátor g ++ v systéme nainštalovaný alebo nie. Ak používate kód Visual Studio, nainštalujte si potrebné rozšírenia na kompiláciu zdrojového kódu C ++ na vytvorenie spustiteľného kódu. Tu bola aplikácia Visual Studio Code použitá na kompiláciu a spustenie kódu C ++.







Syntax

reťazec substr (size_t pos = 0, size_t len ​​= npos) const;



Tu prvý argument obsahuje počiatočnú pozíciu, od ktorej sa začne podreťazec, a druhý argument obsahuje dĺžku podreťazca. Funkcia vráti podreťazec, ak je zadaná platná počiatočná pozícia a dĺžka. Rôzne spôsoby použitia tejto funkcie boli ukázané v ďalšej časti tohto tutoriálu.



Príklad 1: Jednoduché použitie substr ()

Nasledujúci príklad ukazuje najbežnejšie a najjednoduchšie použitie funkcie substr (). Vytvorte súbor C ++ s nasledujúcim kódom na vygenerovanie podreťazca z hodnoty reťazca. Do premennej reťazca bol priradený reťazec viacerých slov. Ďalej platná počiatočná pozícia a dĺžka podreťazca majú v hodnotách argumentov funkcie substr (). Pôvodný reťazec aj podreťazec sa vytlačia po spustení kódu.





// Zahrňte potrebné knižnice
#zahrnúť
#zahrnúť


intHlavná() {
// Definujte reťazcovú premennú
hodiny::reťazecoriginalstr=„Vitajte v Linuxhint“;
// Vystrihnite podreťazec pomocou substr ()
hodiny::reťazecnewstr=originalstr.substr (jedenásť,9);
// Vytlačte pôvodný reťazec
hodiny::náklady <<„Pôvodný reťazec je:“ <<originalstr<< ' n';
// Vytlačte podreťazec
hodiny::náklady <<'Podreťazec je:' <<newstr<< ' n';

vrátiť sa 0;
}

Výkon:

Podľa kódu je pôvodný reťazec „ Vitajte v LinuxHint ‘. 11 udáva počiatočnú pozíciu podreťazca, ktorým je poloha znaku „L“, a 9 udáva hodnotu dĺžky podreťazca. „ Linuxová rada ‘Sa vrátil ako výstup funkcie substr () po spustení kódu.



Príklad 2: Použitie substr () na základe polohy konkrétneho reťazca

Nasledujúci kód vygeneruje podreťazec po vyhľadaní polohy konkrétneho reťazca. Na otestovanie kódu vytvorte súbor C ++ s nasledujúcim kódom. V kóde bola definovaná reťazcová hodnota viacerých slov. Ďalej sa pozícia konkrétneho reťazca hľadá v hlavnom reťazci pomocou funkcie find (). Funkcia substr () bola použitá na generovanie podreťazca od začiatku reťazca po hodnotu polohy, ktorá bude vrátená funkciou find ().

// Zahrňte potrebné knižnice
#zahrnúť
#zahrnúť
použitím priestor mienhodiny;

intHlavná()
{
hodiny::reťazecstrData= „Mám rád programovanie v C ++“;

// Poďme nájsť polohu '-' pomocou str.find ()
intpozíciu=strData.Nájsť('programovanie');

// Do tohto vzoru dostaneme podreťazec
hodiny::reťazecnewstr=strData.substr(0, poloha);

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

vrátiť sa 0;
}

Výkon:

Podľa kódu je hlavnou hodnotou reťazca, Mám rád programovanie v C ++ a hodnota vyhľadávacieho reťazca je „ programovanie “ ktorý existuje v hlavnom reťazci. Výstupom je teda „ Mám rád C ++ „Po spustení kódu.

Príklad 3: Použitie substr () so spracovaním výnimiek

V nasledujúcom kóde bola použitá funkcia substr () s výnimkou spracovania výnimiek. Výnimka sa vygeneruje, ak je vo funkcii substr () zadaná neplatná počiatočná pozícia. Na otestovanie kódu vytvorte súbor C ++ s nasledujúcim kódom. V bloku try bola priradená hodnota reťazca jedného slova a vo funkcii substr (), ktorá vyvolá výnimku a vytlačí chybové hlásenie, bola použitá neplatná začiatočná pozícia.

// Zahrňte potrebné knižnice
#zahrnúť
#zahrnúť

intHlavná() {
skúsiť{

// Definujte reťazcovú premennú
hodiny::reťazecoriginalstr='Linuxhint';
// Vystrihnite podreťazec pomocou substr ()
hodiny::reťazecnewstr=originalstr.substr (jedenásť,9);
// Vytlačte podreťazec
hodiny::náklady <<'Podreťazec je:' <<newstr<< ' n';
}
chytiť (konšthodiny::mimo rozsah) {
hodiny::cerr << „Poloha je mimo rozsah. n';
}
vrátiť sa 0;
}

Výkon:

Podľa kódu je hlavnou hodnotou reťazca, Linuxová rada a hodnota počiatočnej pozície je 11, ktorá neexistuje. Bola teda vygenerovaná výnimka a po spustení kódu bolo vytlačené chybové hlásenie.

Príklad 4: Na rozdelenie reťazca použite príkaz substr ()

Nasledujúci príklad ukazuje použitie funkcie substr () na rozdelenie reťazca na základe oddeľovača. Na vyhľadávanie polohy oddeľovača sa použila funkcia find () a na odstránenie rozdeleného reťazca s oddeľovačom z hlavného reťazca funkcia erase (). Cyklus „while“ použil na nájdenie všetkých polôh oddeľovača v hlavnom reťazci a uloženie rozdelenej hodnoty do vektorového poľa. Ďalej boli vytlačené hodnoty vektorového poľa.

// Zahrňte potrebné knižnice
#zahrnúť
#zahrnúť
#zahrnúť

intHlavná(){
// Definujte reťazec
hodiny::reťazecstringData= 'PHP: C ++: Python:';
// Definujte oddeľovač
hodiny::reťazecoddeľovač= ':';
// Deklarujte vektorovú premennú
hodiny::vektorjazykov{};
// Deklarujte celočíselnú premennú
intpozíciu;
// Deklarujte reťazcovú premennú
hodiny::reťazecvonkajšia;
/ *
Rozdeľte reťazec pomocou funkcie substr ()
a pridanie rozdeleného slova do vektora
* /

kým ((pozíciu=stringData.Nájsť(oddeľovač)) !=hodiny::reťazec::npos) {
jazykov.push_back(stringData.substr(0, poloha));
stringData.vymazať(0, poloha+oddeľovač.dĺžka());
}
// Vytlačí všetky rozdelené slová
pre (konšt auto &vonkajšia:jazykov) {
hodiny::náklady <<vonkajšia<<hodiny::endl;
}
vrátiť sa 0;
}

Výkon:

Podľa kódu je hlavnou hodnotou reťazca PHP: C ++: Python a hodnota oddeľovača je: „ : ' . Po spustení vyššie uvedeného skriptu sa zobrazí nasledujúci výstup.

Záver

Hlavným účelom použitia funkcie substr () je načítať podreťazec z reťazca uvedením počiatočnej polohy a dĺžky podreťazca. Rôzne použitia tejto funkcie boli v tomto návode vysvetlené pomocou niekoľkých príkladov, ktoré pomôžu novým používateľom C ++ správne ich používať vo svojom kóde.