Cum se folosește funcția substr () în C ++

How Use Substr Function C



Modul de a tăia orice porțiune dintr-un șir se numește sub-șir. Funcția substr () există în C ++ pentru a genera un șir nou prin tăierea unei anumite porțiuni dintr-un șir. The șir.h fișierul bibliotecă este necesar pentru a include pentru a utiliza această funcție. Această funcție are două argumente. Primul argument conține poziția de pornire a noului șir, iar al doilea argument conține lungimea șirului. Modul de utilizare a funcției substr () în C ++ a fost explicat în acest tutorial.

Cerință prealabilă

Înainte de a verifica exemplele acestui tutorial, trebuie să verificați dacă compilatorul g ++ este instalat sau nu în sistem. Dacă utilizați Visual Studio Code, atunci instalați extensiile necesare pentru a compila codul sursă C ++ pentru a crea codul executabil. Aici, aplicația Visual Studio Code a fost utilizată pentru a compila și executa codul C ++.







Sintaxă

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



Aici, primul argument conține poziția de pornire de unde va fi pornit sub-șirul, iar al doilea argument conține lungimea sub-șirului. Funcția va returna șirul secundar dacă sunt date poziția și lungimea valabile. Diferitele utilizări ale acestei funcții s-au arătat în următoarea parte a acestui tutorial.



Exemplul 1: utilizarea simplă a substr ()

Următorul exemplu arată cea mai comună și simplă utilizare a funcției substr (). Creați un fișier C ++ cu următorul cod pentru a genera un șir dintr-o valoare șir. Un șir de cuvinte multiple a fost atribuit unei variabile șir. Apoi, poziția inițială validă și lungimea șirului secundar au în argument valorile funcției substr (). Atât șirul original, cât și șirul secundar vor fi imprimate după executarea codului.





// Includeți bibliotecile necesare
#include
#include


intprincipal() {
// Definiți o variabilă șir
ore::şiroriginalstr=„Bun venit la Linuxhint”;
// Tăiați șirul secundar folosind substr ()
ore::şirnewstr=originalstr.substr (unsprezece,9);
// Imprimați șirul original
ore::cost <<„Șirul original este:” <<originalstr<< ' n';
// Imprimați șirul secundar
ore::cost <<„Șirul este:” <<newstr<< ' n';

întoarcere 0;
}

Ieșire:

Conform codului, șirul original este „ Bine ați venit la LinuxHint ‘. 11 a dat ca poziție de pornire a șirului secundar, care este poziția caracterului „L”, și 9 a dat ca valoare a lungimii șirului secundar. ‘ LinuxHint ‘A revenit ca ieșire a funcției substr () după executarea codului.



Exemplul 2: Utilizarea substr () pe baza poziției unui șir specific

Următorul cod va genera sub-șirul după căutarea poziției șirului particular. Creați un fișier C ++ cu următorul cod pentru a testa codul. O valoare șir a mai multor cuvinte a fost definită în cod. Apoi, poziția unui anumit șir este căutată în șirul principal utilizând funcția find (). Funcția substr () a fost utilizată pentru a genera sub-șirul începând de la începutul șirului până la valoarea poziției care va fi returnată de funcția find ().

// Includeți bibliotecile necesare
#include
#include
folosind spațiu de numeore;

intprincipal()
{
ore::şirstrData= „Îmi place programarea C ++”;

// Să găsim poziția „-” folosind str.find ()
intpoziţie=strData.găsi(„programare”);

// Vom obține șirul până la acest model
ore::şirnewstr=strData.substr(0, poziție);

ore::cost <<strData<< ' n';
ore::cost <<newstr<< ' n';

întoarcere 0;
}

Ieșire:

Conform codului, valoarea șirului principal este, Îmi place programarea C ++ iar valoarea șirului de căutare este „ programare ” care există în șirul principal. Deci, rezultatul este „ Îmi place C ++ ‘După executarea codului.

Exemplul 3: Utilizarea substr () cu gestionarea excepțiilor

Funcția substr () a fost utilizată cu gestionarea excepțiilor în următorul cod. Excepția va fi generată dacă poziția inițială nevalidă este dată în funcția substr (). Creați un fișier C ++ cu următorul cod pentru a testa codul. În blocul try, a fost atribuită o valoare șir de un cuvânt și a fost utilizată o poziție de pornire nevalidă în funcția substr () care va ridica o excepție și va imprima mesajul de eroare.

// Includeți bibliotecile necesare
#include
#include

intprincipal() {
încerca{

// Definiți o variabilă șir
ore::şiroriginalstr=„Linuxhint”;
// Tăiați șirul secundar folosind substr ()
ore::şirnewstr=originalstr.substr (unsprezece,9);
// Imprimați șirul secundar
ore::cost <<„Șirul este:” <<newstr<< ' n';
}
captură (constore::afară_de_interval) {
ore::cerr << „Poziția este în afara intervalului. n';
}
întoarcere 0;
}

Ieșire:

Conform codului, valoarea șirului principal este, LinuxHint iar valoarea poziției de pornire este 11 care nu există. Deci, excepția a fost generată și mesajul de eroare a fost tipărit după executarea codului.

Exemplul 4: Utilizarea substr () pentru a împărți șirul

Următorul exemplu arată utilizarea funcției substr () pentru a împărți un șir bazat pe un delimitator. Funcția find () a fost utilizată pentru a căuta poziția delimitatorului, iar funcția erase () a fost utilizată pentru a elimina șirul împărțit cu delimitatorul din șirul principal. Bucla „while” a fost folosită pentru a găsi toate pozițiile delimitatorului în șirul principal și a stoca valoarea împărțită în matricea vectorială. Apoi, valorile matricei vectoriale au fost tipărite.

// Includeți bibliotecile necesare
#include
#include
#include

intprincipal(){
// Definiți șirul
ore::şirstringData= 'PHP: C ++: Python:';
// Definiți separatorul
ore::şirseparator= ':';
// Declarați variabila vectorială
ore::vectorlimbi{};
// Declarați variabila întreagă
intpoziţie;
// Declarați variabila șir
ore::şiroutstr;
/ *
Împarte șirul folosind funcția substr ()
și adăugarea cuvântului împărțit în vector
* /

in timp ce ((poziţie=stringData.găsi(separator)) !=ore::şir::npos) {
limbi.împinge înapoi(stringData.substr(0, poziție));
stringData.şterge(0, poziție+separator.lungime());
}
// Imprimați toate cuvintele împărțite
pentru (const auto &outstr:limbi) {
ore::cost <<outstr<<ore::endl;
}
întoarcere 0;
}

Ieșire:

Conform codului, valoarea șirului principal este PHP: C ++: Python iar valoarea delimitatorului este, „ : ' . Următoarea ieșire va apărea după executarea scriptului de mai sus.

Concluzie

Scopul principal al utilizării funcției substr () este de a extrage un șir dintr-un șir menționând poziția de pornire și lungimea sub-șirului. Diferitele utilizări ale acestei funcții au fost explicate în acest tutorial folosind mai multe exemple pentru a ajuta noii utilizatori C ++ să o folosească corect în codul lor.