stringstream class c usage examples
Klasa stringstream w C ++ jest klasą Stream działającą na łańcuchach. Klasa stringstream implementuje operacje wejścia / wyjścia na strumieniach baz pamięci, np. String:
Klasa stringstream w C ++ pozwala traktować obiekt typu string jako strumień. Służy do operowania na strunach. Traktując ciągi jako strumienie, możemy wykonać operację wyodrębniania i wstawiania z / do łańcucha, tak jak strumienie cin i cout.
Te typy operacji są najczęściej przydatne do konwersji ciągów znaków na liczbowe typy danych i odwrotnie. Klasa stringstream również okazuje się pomocna w różnych typach analizy.
=> Przeczytaj serię szkoleń Easy C ++.
Czego się nauczysz:
stringstream Class w C ++
Klasę stringstream można obrazowo przedstawić w następujący sposób:
Na diagramie ios możemy zobaczyć, gdzie pojawia się klasa stringstream. Ta klasa pochodzi z klasy iostream. Obiekty klasy stringstream używają buforu ciągów zawierającego sekwencję znaków. Dostęp do tego bufora można uzyskać bezpośrednio jako obiekt typu string.
W tym celu możemy użyć elementu str stringstream. Aby użyć klasy stringstream w programie C ++, musimy użyć nagłówka .
Na przykład,kod do wyodrębnienia liczby całkowitej z łańcucha wyglądałby tak:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Tutaj deklarujemy obiekt typu string o wartości „2019” i obiekt int „myInt”. Następnie używamy konstruktora klasy stringstream do konstruowania obiektu stringstream z obiektu string. Następnie za pomocą operatora ekstrakcji (>>) wartość jest wyodrębniana do myInt. Z powyższego kodu wartością myInt będzie 2019.
Przyjrzyjmy się różnym operacjom klasy stringstream.
Operacje wstawiania i wyodrębniania przy użyciu strumienia łańcuchowego
Teraz zobaczymy, jak pobrać dane do łańcucha ciągów lub operacji wstawiania i jak uzyskać dane ze strumienia łańcuchów, tj. Operacji wyodrębniania z klasy stringstream.
# 1) Operacja wstawiania
Aby uzyskać dane w łańcuchu ciągów, możemy użyć dwóch metod.
(i) Korzystanie z operatora wstawiania (<<)
c ++ pytania i odpowiedzi
Biorąc pod uwagę obiekt ss stringstream, możemy przypisać dane do bufora ss w następujący sposób, używając<< operator.
stringstream ss; ss<< “hello,world!!”;
To wstawia „hello, world !!” do stringstream ss.
(ii) Korzystanie z funkcji str (string)
Możemy również użyć funkcji str do przypisania danych do bufora stringstream. Funkcja str przyjmuje ciąg danych jako argument i przypisuje te dane do obiektu stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Operacja ekstrakcji
Mamy dwie metody pobierania danych ze strumienia łańcuchowego lub operacji ekstrakcji.
(i) Korzystanie z funkcji str ()
Możemy użyć funkcji str (), aby pobrać dane ze strumienia w następujący sposób.
stringstream ss; ss<<”Hello,World”; cout< (ii) Korzystanie z operatora wyodrębniania (>>)
Możemy użyć operatora ekstrakcji, aby wyświetlić dane łańcucha w następujący sposób.
Stringstream ss; ss<>str;
Zgodnie z powyższym kodem, zmienna str będzie miała wartość obiektu ss w wyniku działania operatora ekstrakcji.
Poniżej podano kompletny program, który demonstruje użycie operacji wstawiania i wyodrębniania klasy stringstream.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< Wynik:

W powyższym programie pokazaliśmy najpierw metody wstawiania, czyli operator<< and str(string) function that reads the string into stringstream.
c ++ generuje losową liczbę od 1 do 10
Następnie zobaczyliśmy działanie metod wyodrębniania, które są funkcją str (), która pobiera dane ze strumienia łańcuchów i operatora >>.
Zauważ, że dla operatora >>, ponieważ początkowe dane łańcucha znaków składają się z białych znaków, podczas przypisywania danych do zmiennej łańcuchowej, będą one odczytywane tylko do pierwszej białej spacji. W związku z tym, aby przekonwertować cały obiekt stringstream na dane łańcuchowe, potrzebujemy jednej zmiennej, aby odczytać dane oddzielone białymi znakami.
Dlatego w powyższym programie potrzebujemy trzech zmiennych łańcuchowych, aby uzyskać pełne dane obiektu stringstream.
Zastosowania stringstream w C ++
Możemy znaleźć zastosowania klasy stringstream w różnych aplikacjach.
Niektóre aplikacje zostały omówione poniżej w celach informacyjnych:
# 1) Konwersja między ciągami a liczbami
Operatory wstawiania i wyodrębniania łańcucha łańcuchowego działają ze wszystkimi podstawowymi typami danych. Dlatego możemy ich użyć do konwersji łańcuchów na typy liczbowe i odwrotnie.
Pełny program do konwersji między łańcuchami i liczbami jest podany poniżej.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< Wynik:

Najpierw przekonwertowaliśmy wartości liczbowe na ciągi znaków. Następnie konwertujemy numeryczne wartości łańcuchowe na wartości liczbowe.
# 2) Zliczanie liczby słów w ciągu
Możemy użyć klasy stringstream, aby policzyć liczbę słów w ciągu. Pełny program znajduje się poniżej.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
Wynik:
Liczba słów w podanym ciągu to: 9
Aby policzyć liczbę słów w danym ciągu, najpierw konwertujemy go na obiekt stringstream. Następnie liczymy każde słowo za pomocą operatora ekstrakcji (ponieważ zatrzymuje się na każdym białym znaku) w pętli. Na koniec wypisujemy wartość całkowitej liczby słów.
to wsparcie techniczne pytania i odpowiedzi na rozmowę kwalifikacyjną
# 3) Wydrukuj częstotliwości poszczególnych słów w ciągu
Kolejnym zastosowaniem stringstream w C ++ jest wypisanie częstotliwości różnych słów w danym ciągu. Oznacza to, że wypisujemy, ile razy dane słowo występuje w danym ciągu.
W tym celu utrzymaliśmy strukturę mapy, która będzie miała parę klucz-wartość z każdym słowem w ciągu jako klucz, a odpowiadająca jej wartość to częstotliwość tego konkretnego słowa.
Pełny program w C ++ przedstawiono poniżej.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout Wynik:

W tym programie każde słowo w łańcuchu jest wprowadzane do mapy, a następnie liczba lub częstotliwość każdego słowa jest zapisywana jako wartość dla odpowiedniego klucza w mapie. W ten sposób wypisujemy wszystkie słowa struny i odpowiadające im częstotliwości.
Wniosek
Klasa Stringstream służy do wstawiania i wyodrębniania danych do / z obiektów string. Działa jako strumień dla obiektu ciągu. Klasa stringstream jest podobna do strumieni cin i cout, z tą różnicą, że nie ma kanału wejścia-wyjścia.
Omówiliśmy różne operacje klasy stringstream wraz z kilkoma przykładami jej zastosowań w programowaniu.
W naszych kolejnych samouczkach szczegółowo omówimy funkcje biblioteczne języka C ++.
=> Poszukaj całej serii szkoleń C ++ tutaj.
rekomendowane lektury
- Wykorzystanie kursora w MongoDB z przykładami
- Użycie ObjectId () w MongoDB z przykładami
- Naucz się używać klasy StringBuilder języka C # i jej metod z przykładami
- Interfejs Java i samouczek klasy abstrakcyjnej z przykładami
- Przykłady twierdzeń o selenie - praktyczne zastosowania w projektach
- Dokument zapytania MongoDB przy użyciu metody Find () (przykłady)
- C # String Tutorial - Metody ciągów z przykładami kodu
- Poznaj podstawy języka Java w selenie z przykładami