Stringstream in C++ und seine Anwendungen

Ein Stringstream verknüpft ein String-Objekt mit einem Stream, sodass Sie aus dem String lesen können, als wäre es ein Stream (wie cin). Um Stringstream verwenden zu können, müssen wir Folgendes einschließen Strom Header-Datei. Die Stringstream-Klasse ist beim Parsen von Eingaben äußerst nützlich.

Grundlegende Methoden sind:

    clear() – Um den Stream zu löschen. str() – Zum Abrufen und Festlegen eines String-Objekts, dessen Inhalt im Stream vorhanden ist. Operator < <- Fügen Sie dem Stringstream-Objekt eine Zeichenfolge hinzu. Operator>>- Liest etwas aus dem Stringstream-Objekt.

Beispiele:

1. Zählen Sie die Anzahl der Wörter in einer Zeichenfolge

Beispiele:

Eingang: Asipu Pawan Kumar
Ausgabe: 3

Eingang: Geeks für Geeks-Idee
Ausgabe: 4

Nachfolgend finden Sie das C++-Programm zur Implementierung des oben genannten Ansatzes:

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

Ausgabe

 Number of words are: 6 

Zeitkomplexität: O(n*log(n)).

Nebenraum: An).

2. Geben Sie die Häufigkeit einzelner Wörter in einer Zeichenfolge aus

Beispiele:

Eingang: Geeks für Geeks Quiz Geeks Quiz Übungspraxis
Ausgabe: Für -> 1
Geeks -> 3
Üben -> 2
Quiz -> 2

Eingang: Wortzeichenfolge-Häufigkeitszeichenfolge
Ausgabe: Häufigkeit -> 1
Zeichenfolge -> 2
Wort -> 1

Nachfolgend finden Sie das C++-Programm zur Implementierung des oben genannten Ansatzes:

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; // Wird zum Umbrechen von Wörtern verwendet stringstream ss(st); // Um ​​einzelne Wörter zu speichern string Word; while (ss>> Word) FW[Word]++; für (auto m : FW) cout < < m.first < < '->' < < m.second < < ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

Ausgabe

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

Zeitkomplexität: O(n*log(n)).

Nebenraum: An).

3. Konvertieren Sie eine Ganzzahl in einen String

Seitdem funktionieren die Einfügungs- und Extraktionsoperatoren von String Stream mit unterschiedlichen Datentypen. Deshalb funktioniert es gut mit ganzen Zahlen.

Wir fügen eine Ganzzahl in den String-Stream ein und nachdem wir diese in einen String extrahiert haben, wird dieser Ganzzahlwert zu einem String.

Code-

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

Ausgabe

1234 

Zeitkomplexität: O(n) ,n ist die Länge der Ganzzahl

Hilfsraum: O(n)

Leerzeichen aus einer Zeichenfolge mit Stringstream entfernen
Konvertieren von Zeichenfolgen in Zahlen in C/C++