logo

stringstream în C++ și aplicațiile sale

Un șir de caractere asociază un obiect șir cu un flux, permițându-vă să citiți din șir ca și cum ar fi un flux (cum ar fi cin). Pentru a folosi stringstream, trebuie să includem sstream fișier antet. Clasa stringstream este extrem de utilă în analizarea intrării.

Metodele de bază sunt:

    clear()- Pentru a șterge fluxul. str()- Pentru a obține și a seta obiectul șir al cărui conținut este prezent în flux. operator <<- Adăugați un șir la obiectul stringstream. operator>>- Citiți ceva din obiectul stringstream.

Exemple:



json din obiectul java

1. Numărați numărul de cuvinte dintr-un șir

Exemple:

Intrare: Asipu Pawan Kumar
Ieșire: 3

Intrare: Geeks For Geeks Ide
Ieșire: 4

Mai jos este programul C++ pentru a implementa abordarea de mai sus-

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>> cuvânt)> >count++;> >return> count;> }> // Driver code> int> main()> {> >string s =>'geeks for geeks geeks '> >'contribution placements'>;> >cout <<>' Number of words are: '> << countWords(s);> >return> 0;> }>

>

>

Ieșire

 Number of words are: 6>

Complexitatea timpului: O(n*log(n)).

Spatiu auxiliar: Pe).

2. Tipăriți frecvențele cuvintelor individuale într-un șir

Exemple:

Intrare: Geeks For Geeks Quiz Geeks Quiz Practică Practică
Ieșire: Pentru -> 1
Tocilari -> 3
Practica -> 2
Test -> 2

Intrare: șir de cuvinte șir de frecvență
Ieșire: Frecvență -> 1
Șir -> 2
Cuvânt -> 1

Mai jos este programul C++ pentru a implementa abordarea de mai sus-

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; // Folosit pentru ruperea cuvintelor stringstream ss(st); // Pentru a stoca șir de cuvinte individuale Word; în timp ce (ss>> Cuvânt) FW[Cuvânt]++; pentru (auto m : FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Ieșire

For->1 Geeks-> 2 Ide-> 1>>> 

Complexitatea timpului: O(n*log(n)).

Spatiu auxiliar: Pe).

3. Convertiți întregul în șir

Din moment ce, operatorii de inserare și extracție ai fluxului de șiruri funcționează cu diferite tipuri de date. Deci, de aceea funcționează bine cu numere întregi.

Vom insera un număr întreg în fluxul de șir și după ce îl extragem într-un șir, acea valoare întreagă va deveni un șir.

Cod-

C++


java int la șir



// 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; }>

>

Ieșire

1234>

Complexitatea timpului: O(n) ,n este lungimea întregului

Spațiu auxiliar: O(n)

Eliminarea spațiilor dintr-un șir folosind Stringstream
Conversia șirurilor de caractere în numere în C/C++