logo

stringstream in C++ en zijn toepassingen

Een stringstream associeert een stringobject met een stream, waardoor je van de string kunt lezen alsof het een stream is (zoals cin). Om stringstream te gebruiken, moeten we include stroom header-bestand. De klasse stringstream is uiterst nuttig bij het parseren van invoer.

Basismethoden zijn:



wat is orakel
    clear()- Om de stream te wissen. str() - Om een ​​stringobject op te halen en in te stellen waarvan de inhoud aanwezig is in de stream. operator <<- Voeg een string toe aan het stringstream-object. operator>>- Lees iets uit het stringstream-object.

Voorbeelden:

1. Tel het aantal woorden in een string

Voorbeelden:



Invoer: Asipu Pawan Kumar
Uitgang: 3

Invoer: Geeks voor Geeks Idee
Uitgang: 4

Hieronder vindt u het C++-programma om de bovenstaande aanpak te implementeren:



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

>

>

Uitvoer

 Number of words are: 6>

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

Hulpruimte: Op).

omkerende tekenreeks java

2. Print frequenties van individuele woorden in een string

Voorbeelden:

Invoer: Geeks voor Geeks Quiz Geeks Quiz Oefening
Uitgang: Voor -> 1
Geeks -> 3
Oefenen -> 2
Toets -> 2

Invoer: Woordreeks Frequentiereeks
Uitgang: Frequentie -> 1
Tekenreeks -> 2
Woord -> 1

Hieronder vindt u het C++-programma om de bovenstaande aanpak te implementeren:

C++


volgende scanner



// 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; // Gebruikt voor het breken van woorden stringstream ss(st); // Om individuele woordenreeks Word op te slaan; terwijl (ss>> Woord) FW[Woord]++; voor (auto m: FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Uitvoer

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

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

Hulpruimte: Op).

3. Converteer geheel getal naar tekenreeks

Sindsdien werken de invoeg- en extractie-operatoren van stringstream met verschillende gegevenstypen. Daarom werkt het goed met gehele getallen.

We zullen een geheel getal in de stringstroom invoegen en nadat we dat in een string hebben geëxtraheerd, wordt die gehele waarde een string.

Code-

globale JavaScript-variabelen

C++




Java binaire boom
// 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; }>

>

>

Uitvoer

1234>

Tijdcomplexiteit: O(n) ,n is de lengte van het gehele getal

Hulpruimte: O(n)

Spaties uit een string verwijderen met Stringstream
Tekenreeksen naar getallen converteren in C/C++