Strumień stringów kojarzy obiekt string ze strumieniem, umożliwiając odczytywanie łańcucha tak, jakby był to strumień (np. cin). Aby użyć stringstream, musimy dołączyć strumień plik nagłówkowy. Klasa stringstream jest niezwykle przydatna podczas analizowania danych wejściowych.
Podstawowe metody to:
jak usunąć pierwszy znak w programie Excel
- clear() — Aby wyczyścić strumień. str() — Aby pobrać i ustawić obiekt typu string, którego zawartość jest obecna w strumieniu. operator <<- Dodaj ciąg do obiektu stringstream. operator>>- Przeczytaj coś z obiektu stringstream.
Przykłady:
1. Policz liczbę słów w ciągu
Przykłady:
Wejście: Asipu Pawana Kumara
Wyjście: 3Wejście: Pomysł dla maniaków dla maniaków
Wyjście: 4
Poniżej znajduje się program C++ realizujący powyższe podejście-
C++
// C++ program to count words in> // a string using stringstream.> #include> #include> #include> using> namespace> std;> int> countWords(string str)> {> >// Breaking input into word> >// using string stream> > >// Used for breaking words> >stringstream s(str);> > >// To store individual words> >string word;> >int> count = 0;> >while> (s>> słowo)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }> |
>
>Wyjście
Number of words are: 6>
Złożoność czasowa: O(n*log(n)).
Przestrzeń pomocnicza: NA).
2. Wypisz częstotliwości poszczególnych słów w ciągu znaków
Przykłady:
Wejście: Geeks For Geeks Quiz Geeks Quiz Ćwicz praktykę
Wyjście: Dla -> 1
Geeki -> 3
Praktyka -> 2
Quiz -> 2Wejście: Ciąg słów Ciąg częstotliwości
Wyjście: Częstotliwość -> 1
Ciąg -> 2
Słowo -> 1
Poniżej znajduje się program C++ realizujący powyższe podejście-
C++
// C++ program to demonstrate use> // of stringstream to count> // frequencies of words.> #include> using> namespace> std;> void> printFrequency(string st)> {> >// Each word it mapped to> >// it's frequency> >mapint>FW; // Używane do łamania słów stringstream ss(st); // Do przechowywania pojedynczych słów string Word; while (ss>> Słowo) FW[Word]++; for (auto m: FW) cout<< m.first << '->'<< m.second << '
'; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }> |
>
>Wyjście
For->1 Geek-> 2 Pomysł-> 1>
Złożoność czasowa: O(n*log(n)).
Przestrzeń pomocnicza: NA).
3. Konwertuj liczbę całkowitą na ciąg znaków
Ponieważ operatory wstawiania i ekstrakcji strumienia łańcuchowego działają z różnymi typami danych. Dlatego właśnie działa dobrze z liczbami całkowitymi.
Wstawimy liczbę całkowitą do strumienia ciągu znaków i po wyodrębnieniu jej do łańcucha ta wartość całkowita stanie się ciągiem znaków.
Kod-
mamta kulkarni aktor
C++
// C++ program to demonstrate the> // use of a stringstream to> // convert int to string> #include> #include> using> namespace> std;> // Driver code> int> main()> {> >int> val=123;> >// object from the class stringstream> >stringstream geek;> >// inserting integer val in geek stream> >geek << val;> >// The object has the value 123> >// and stream it to the string x> >string x;> >geek>>x;> >// Now the string x holds the> >// value 123> >cout<'4'< return 0; }> |
>
>Wyjście
1234>
Złożoność czasowa: O(n) ,n jest długością liczby całkowitej
Przestrzeń pomocnicza: O(n)
Usuwanie spacji z ciągu za pomocą Stringstream
Konwersja ciągów na liczby w C/C++