logo

stringstream v C++ a jeho aplikacích

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: 3

Vstup: 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 -> 2

Vstup: Ř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++