stringstream i C++ og dens applikasjoner

En strengstrøm assosierer et strengobjekt med en strøm slik at du kan lese fra strengen som om den var en strøm (som cin). For å bruke stringstream må vi inkludere sstream header-fil. Stringstream-klassen er ekstremt nyttig for å analysere input.

Grunnleggende metoder er:

    clear()- For å tømme strømmen. str()- For å hente og sette strengobjekt hvis innhold er tilstede i strømmen. operator < <- Legg til en streng til stringstream-objektet. operator>>- Les noe fra stringstream-objektet.

Eksempler:

1. Tell antall ord i en streng

Eksempler:

Inndata: Asipu Pawan Kumar
Produksjon: 3

Inndata: Geeks For Geeks Ide
Produksjon: 4

Nedenfor er C++-programmet for å implementere tilnærmingen ovenfor-

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

Produksjon

 Number of words are: 6 

Tidskompleksitet: O(n*log(n)).

Ekstra plass: På).

2. Skriv ut frekvenser for individuelle ord i en streng

Eksempler:

Inndata: Geeks For Geeks Quiz Geeks Quiz Practice Practice
Produksjon: For -> 1
Geeks -> 3
Øvelse -> 2
Quiz -> 2

Inndata: Ordstreng Frekvensstreng
Produksjon: Frekvens -> 1
String -> 2
Ord -> 1

Nedenfor er C++-programmet for å implementere tilnærmingen ovenfor-

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; // Brukes for å bryte ord stringstream ss(st); // For å lagre individuelle ord streng Word; while (ss>> Word) 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; }>

Produksjon

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

Tidskompleksitet: O(n*log(n)).

Ekstra plass: På).

3. Konverter heltall til streng

Siden, innsettings- og uttrekksoperatørene til strengstrøm fungerer med forskjellige datatyper. Så derfor fungerer det bra med heltall.

Vi vil sette inn et heltall i strengstrømmen, og etter å ha trukket det ut i en streng, vil den heltallsverdien bli en streng.

Kode-

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

Produksjon

1234 

Tidskompleksitet: O(n) ,n er lengden på heltallet

Hjelpemellomrom: O(n)

Fjerne mellomrom fra en streng ved hjelp av Stringstream
Konvertere strenger til tall i C/C++