Jak używać funkcji substr w C ++

Jak używać funkcji substr w C ++
Sposób na odcięcie dowolnej części ze sznurka nazywa. Funkcja substr () istnieje w C ++, aby wygenerować nowy ciąg, odcinając określoną część z ciągu. strunowy.H Plik biblioteki musi dołączyć do użycia tej funkcji. Ta funkcja ma dwa argumenty. Pierwszy argument zawiera pozycję wyjściową nowego ciągu, a drugi argument zawiera długość ciągu. Sposób użycia funkcji substr () w C ++ został wyjaśniony w tym samouczku.

Warunek wstępny

Przed sprawdzeniem przykładów tego samouczka musisz sprawdzić, czy kompilator G ++ jest zainstalowany lub nie w systemie. Jeśli używasz kodu Visual Studio, zainstaluj niezbędne rozszerzenia, aby skompilować kod źródłowy C ++, aby utworzyć kod wykonywalny. Tutaj aplikacja kodu Visual Studio 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ą, z której zostanie uruchomione pod stringa, a drugi argument zawiera długość podtrefy. Funkcja zwróci podprieranie, jeśli podano prawidłową pozycję początkową i długość. Różne zastosowania tej funkcji pokazano w następnej części tego samouczka.

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

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

// Dołącz niezbędne biblioteki
#włączać
#włączać
int main ()
// Zdefiniuj zmienną stringową
STD :: String originalstr = "Welcome to Linuxhint";
// Wytnij substancję podrzędną za pomocą substr ()
std :: String Newsttr = originalstr.podłoże (11,9);
// Wydrukuj oryginalny ciąg
STD :: Cout <<"The original string is :" << originalstr << '\n';
// Wydrukuj substancję podrzędną
STD :: Cout <<"The substring is :" << newstr << '\n';
powrót 0;

Wyjście:

Zgodnie z kodem oryginalny ciąg to 'Witamy w Linuxhint'. 11 dało jako pozycję początkową substring, która jest pozycją znaku „L”, a 9 dało jako wartość długości substring. 'Linuxhint„Zwrócił się jako wyjście funkcji substr () po wykonaniu kodu.

Przykład 2: Za pomocą substr () na podstawie położenia określonego ciągu

Poniższy kod wygeneruje substrowanie po przeszukaniu pozycji konkretnego ciągu. Utwórz plik C ++ z następującym kodem, aby przetestować kod. Wartość ciągu wielu słów została zdefiniowana w kodzie. Następnie położenie określonego ciągu jest wyszukiwane w głównym ciągu za pomocą funkcji FINK (). Funkcja substr () została użyta do generowania sub-drestringu od początku ciągu do wartości pozycji, która zostanie zwrócona przez funkcję FINK ().

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

std :: string strdata = "lubię programowanie C ++";
// znajdźmy pozycję „-” za pomocą STR.znajdować()
int pozycja = strdata.znaleźć („programowanie”);
// Dostaniemy podłoże do tego wzoru
std :: String Newstr = strdata.substr (0, pozycja);
STD :: Cout << strData << '\n';
STD :: Cout << newstr << '\n';
powrót 0;

Wyjście:

Zgodnie z kodem główną wartością ciągów jest: „Lubię programowanie C ++”, A wartość ciągłego ciągłego jest”programowanie' który istnieje w głównym ciągu. Tak więc wyjście to: '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 następującym kodzie. Wyjątek zostanie wygenerowany, jeśli nieprawidłowa pozycja początkowa zostanie podana w funkcji substr (). Utwórz plik C ++ z następującym kodem, aby przetestować kod. W bloku próbnym przypisano wartość ciągu jednego słowa, a w funkcji substr () użyto nieprawidłowej pozycji początkowej, która podniesie wyjątek i wydrukuje komunikat o błędzie.

#włączać
#włączać
int main ()
próbować
// Zdefiniuj zmienną stringową
std :: String originalstr = "Linuxhint";
// Wytnij substancję podrzędną za pomocą substr ()
std :: String Newsttr = originalstr.podłoże (11,9);
// Wydrukuj substancję podrzędną
STD :: Cout <<"The substring is :" << newstr << '\n';

catch (const std :: out_of_range)
Std :: Cerr << "The position is out of Range.\n";

powrót 0;

Wyjście:

Zgodnie z kodem główną wartością ciągów jest: „Linuxhint”A wartość pozycji początkowej to 11, która nie istnieje. Wyjął więc wyjątek, a komunikat o błędzie został wydrukowany po wykonaniu kodu.

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

Poniższy przykład pokazuje użycie funkcji substr () do podziału ciągu na podstawie ogranicznika. Funkcja Find () została użyta do wyszukiwania pozycji ogranicznika, a funkcja Erase () została użyta do usunięcia podzielonego ciągu z ogranicznikiem z głównego ciągu. Pętla „While” używała do znalezienia wszystkich pozycji ogranicznika w ciągu głównego ciągu i przechowywania podzielonej wartości w tablicy wektorowej. Następnie wydrukowano wartości tablicy wektorowej.

Linuxhint@hp34: ~ $ cat a.CPP
#włączać
#włączać
#włączać
int main ()
// Zdefiniuj ciąg
std :: String StringData = "php: C ++: Python:";
// Zdefiniuj separator
std :: String separator = ":";
// zadeklaruj zmienną wektorową
STD :: wektor Języki;
// Deklaruj zmienną całkowitą
pozycja int;
// Deklaruj zmienną ciągu
STD :: String zewnętrzny;
/*
Podzielić ciąg za pomocą funkcji substr ()
i dodanie podzielonego słowa do wektora
*/
while ((pozycja = StringData.Znajdź (separator)) != std :: String :: npos)
Języki.push_back (StringData.substr (0, pozycja));
StringData.usuń (0, pozycja + separator.długość());

// Wydrukuj wszystkie podzielone słowa
dla (const auto i spoza: języki)
STD :: Cout << outstr << std::endl;

powrót 0;

Wyjście:

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

Wniosek

Głównym celem korzystania z funkcji substr (. Różne zastosowania tej funkcji zostały wyjaśnione w tym samouczku za pomocą wielu przykładów, aby pomóc nowym użytkownikom C ++ w użyciu go prawidłowo w ich kodzie.