Stringstream spojuje objekt typu string s proudem, který vám umožňuje číst z řetězce, jako by to byl proud (jako cin). Chcete-li použít stringstream, musíme zahrnout proud hlavičkový soubor. Třída stringstream je extrémně užitečná při analýze vstupu.
Sridevi
Základní metody jsou:
- clear()- Vyčistí stream. str()- Získání a nastavení objektu typu string, jehož obsah je přítomen ve streamu. operátor <<- Přidá řetězec do objektu stringstream. operátor>>- Přečíst něco z objektu stringstream.
Příklady:
1. Spočítejte počet slov v řetězci
Příklady:
Vstup: Asipu Pawan Kumar
Výstup: 3Vstup: Geeks For Geeks Ide
Výstup: 4
Níže je uveden program C++ pro implementaci výše uvedeného přístupu -
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>> slovo)> > count++;> > return> count;> }> // Driver code> int> main()> {> > string s => 'geeks for geeks geeks '> > 'contribution placements'> ;> > cout <<> ' Number of words are: '> << countWords(s);> > return> 0;> }> |
>
>Výstup
Number of words are: 6>
Časová složitost: O(n*log(n)).
Pomocný prostor: Na).
2. Vytiskněte frekvence jednotlivých slov v řetězci
java databáze jdbc
Příklady:
Vstup: Geekové pro geeky Kvíz Geekové procvičování kvízů
Výstup: Pro -> 1
Geekové -> 3
Cvičení -> 2
Kvíz -> 2Vstup: Řetězec Word Frekvence Řetězec
Výstup: Frekvence -> 1
Řetězec -> 2
Slovo -> 1
Níže je uveden program C++ pro implementaci výše uvedeného přístupu -
C++
jarní inicializr
// 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; // Používá se pro dělení slov stringstream ss(st); // Pro uložení jednotlivých slov string Word; while (ss>> Word) FW[Word]++; pro (auto m : FW) cout<< m.first << '->'<< m.second << '
'; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }> |
>
>Výstup
For->1 geekové-> 2 nápady-> 1>
Časová složitost: O(n*log(n)).
Pomocný prostor: Na).
3. Převeďte celé číslo na řetězec
alternativa mylivecricket
Protože operátory vkládání a extrakce řetězcového proudu pracují s různými datovými typy. Proto to dobře funguje s celými čísly.
Do řetězce řetězců vložíme celé číslo a po jeho extrakci do řetězce se tato celočíselná hodnota stane řetězcem.
Kód-
C++
spánek pro javascript
// 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; }> |
>
>Výstup
1234>
Časová složitost: O(n) ,n je délka celého čísla
Pomocný prostor: O(n)
Odstranění mezer z řetězce pomocí Stringstream
Převod řetězců na čísla v C/C++