Jak używać funkcji substr() w C++

How Use Substr Function C



Sposób na wycięcie dowolnej części z łańcucha nazywa się podciągiem. Funkcja substr() istnieje w C++, aby wygenerować nowy łańcuch poprzez wycięcie określonej części z łańcucha. ten string.h plik biblioteki jest wymagany do włączenia, aby korzystać z tej funkcji. Ta funkcja ma dwa argumenty. Pierwszy argument zawiera pozycję początkową nowego ciągu, a drugi jego długość. Sposób użycia funkcji substr() w C++ został wyjaśniony w tym samouczku.

Warunek wstępny

Przed sprawdzeniem przykładów z tego samouczka, musisz sprawdzić, czy kompilator g++ jest zainstalowany w systemie. Jeśli używasz Visual Studio Code, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C++ w celu utworzenia kodu wykonywalnego. Tutaj aplikacja Visual Studio Code została użyta do kompilacji i wykonania kodu C++.







Składnia

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



Tutaj pierwszy argument zawiera pozycję początkową, od której zostanie rozpoczęty podciąg, a drugi argument zawiera długość podciągu. Funkcja zwróci podciąg, jeśli podano prawidłową pozycję początkową i długość. Różne zastosowania tej funkcji zostały pokazane w następnej części tego samouczka.



Przykład 1: Proste użycie substr()

Poniższy przykład pokazuje najczęstsze i najprostsze użycie funkcji substr(). Utwórz plik C++ z następującym kodem, aby wygenerować podciąg z wartości ciągu. Ciąg składający się z wielu słów został przypisany do zmiennej ciągu. Następnie poprawna pozycja początkowa i długość podciągu mają w wartościach argumentów funkcji substr(). Zarówno oryginalny ciąg, jak i podciąg zostaną wydrukowane po wykonaniu kodu.





//Dołącz niezbędne biblioteki
#włączać
#włączać


intGłówny() {
//Zdefiniuj zmienną łańcuchową
godziny::strunowyoryginał='Witamy w Linuxhint';
//Wytnij podciąg za pomocą substr()
godziny::strunowynewsstr=oryginałstr.substr (jedenaście,9);
//Wydrukuj oryginalny ciąg
godziny::koszt <<'Oryginalny ciąg to :' <<oryginał<< ' ';
//Wydrukuj podciąg
godziny::koszt <<'Podciąg to:' <<newsstr<< ' ';

powrót 0;
}

Wyjście:

Zgodnie z kodem oryginalny ciąg to „ Witamy w LinuxHint „. 11 podało jako początkową pozycję podciągu, czyli pozycję znaku „L”, a 9 jako wartość długości podciągu. ‘ LinuxWskazówka ‘ zwrócił się jako wyjście funkcji substr() po wykonaniu kodu.



Przykład 2: Użycie substr() w oparciu o pozycję określonego ciągu

Poniższy kod wygeneruje podciąg po wyszukaniu pozycji danego ciągu. Utwórz plik C++ z następującym kodem, aby przetestować kod. W kodzie zdefiniowano ciąg znaków składający się z wielu słów. Następnie pozycja określonego ciągu jest przeszukiwana w głównym ciągu za pomocą funkcji find(). Funkcja substr() została użyta do wygenerowania podłańcucha rozpoczynającego się od początku ciągu do wartości pozycji, która zostanie zwrócona przez funkcję find().

//Dołącz niezbędne biblioteki
#włączać
#włączać
za pomocą przestrzeń nazwgodziny;

intGłówny()
{
godziny::strunowystrData= „Lubię programowanie w C++”;

// Znajdźmy pozycję „--” za pomocą str.find()
intpozycja=strData.odnaleźć('programowanie');

// Otrzymamy podciąg aż do tego wzorca
godziny::strunowynewsstr=strData.substr(0, stanowisko);

godziny::koszt <<strData<< ' ';
godziny::koszt <<newsstr<< ' ';

powrót 0;
}

Wyjście:

Zgodnie z kodem główna wartość ciągu to: Lubię programowanie w C++ a wartość szukanego ciągu to „ programowanie' który istnieje w głównym ciągu. Tak więc wynik jest następujący: „ lubię C++ ‘ po wykonaniu kodu.

Przykład 3: Używanie substr() z obsługą wyjątków

Funkcja substr() została użyta z obsługą wyjątków w poniższym kodzie. Wyjątek zostanie wygenerowany, jeśli w funkcji substr() zostanie podana nieprawidłowa pozycja początkowa. Utwórz plik C++ z następującym kodem, aby przetestować kod. W bloku try przypisano wartość ciągu jednego słowa, a w funkcji substr() użyto nieprawidłowej pozycji początkowej, która zgłosi wyjątek i wyświetli komunikat o błędzie.

//Dołącz niezbędne biblioteki
#włączać
#włączać

intGłówny() {
próbować{

//Zdefiniuj zmienną łańcuchową
godziny::strunowyoryginał=„Linuxhint”;
//Wytnij podciąg za pomocą substr()
godziny::strunowynewsstr=oryginałstr.substr (jedenaście,9);
//Wydrukuj podciąg
godziny::koszt <<'Podciąg to:' <<newsstr<< ' ';
}
łapać (stałygodziny::poza zakresem) {
godziny::zły << „Pozycja jest poza zasięgiem. ';
}
powrót 0;
}

Wyjście:

Zgodnie z kodem główna wartość ciągu to: LinuxWskazówka a wartość początkowa wynosi 11, która nie istnieje. Tak więc został wygenerowany wyjątek, a komunikat o błędzie został wydrukowany po wykonaniu kodu.

Przykład 4: Używanie substr() do dzielenia ciągu

Poniższy przykład pokazuje użycie funkcji substr() do dzielenia ciągu na podstawie ogranicznika. Funkcja find() została użyta do przeszukania pozycji ogranicznika, a funkcja erase() została użyta do usunięcia podzielonego ciągu z ogranicznikiem z ciągu głównego. Pętla „while” została wykorzystana do znalezienia wszystkich pozycji ogranicznika w głównym ciągu i zapisania podzielonej wartości w tablicy wektorowej. Następnie zostały wydrukowane wartości tablicy wektorowej.

//Dołącz niezbędne biblioteki
#włączać
#włączać
#włączać

intGłówny(){
//Zdefiniuj ciąg
godziny::strunowyciągDane= 'PHP:C++:Python:';
//Zdefiniuj separator
godziny::strunowyseparator= ':';
//Zadeklaruj zmienną wektora
godziny::wektorJęzyki{};
//Zadeklaruj zmienną całkowitą
intpozycja;
//Zadeklaruj zmienną łańcuchową
godziny::strunowyprzewyższyć;
/ *
Podziel ciąg za pomocą funkcji substr()
i dodanie podzielonego słowa do wektora
* /

podczas ((pozycja=ciągData.odnaleźć(separator)) !=godziny::strunowy::npos) {
Języki.push_back(ciągData.substr(0, stanowisko));
ciągData.usuwać(0, stanowisko+separator.długość());
}
//Wydrukuj wszystkie podzielone słowa
dla (stały automatyczny &przewyższyć:Języki) {
godziny::koszt <<przewyższyć<<godziny::koniec;
}
powrót 0;
}

Wyjście:

Zgodnie z kodem, główna wartość ciągu to PHP:C++:Python a wartość ogranicznika to „ : ” . Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Wniosek

Głównym celem użycia funkcji substr() jest pobranie podciągu z ciągu poprzez podanie pozycji początkowej i długości podciągu. Różne zastosowania tej funkcji zostały wyjaśnione w tym samouczku przy użyciu wielu przykładów, aby pomóc nowym użytkownikom C++ w prawidłowym użyciu jej w swoim kodzie.