logo

stringstream en C++ et ses applications

Un stringstream associe un objet chaîne à un flux vous permettant de lire la chaîne comme s'il s'agissait d'un flux (comme cin). Pour utiliser stringstream, nous devons inclure flux En tête de fichier. La classe stringstream est extrêmement utile pour analyser les entrées.

Les méthodes de base sont :



carte SIM insérée mais pas de service Android
    clear()- Pour effacer le flux. str()- Pour obtenir et définir un objet chaîne dont le contenu est présent dans le flux. opérateur <<- Ajoute une chaîne à l'objet stringstream. opérateur>>- Lire quelque chose à partir de l'objet stringstream.

Exemples:

1. Comptez le nombre de mots dans une chaîne

Exemples:



Saisir: Asipu Pawan Kumar
Sortir: 3

Saisir: Idée Geeks pour Geeks
Sortir: 4

Vous trouverez ci-dessous le programme C++ pour implémenter l'approche ci-dessus.



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

>

>

Sortir

 Number of words are: 6>

Complexité temporelle : O(n*log(n)).

Espace auxiliaire : Sur).

2. Imprimer les fréquences des mots individuels dans une chaîne

Exemples:

Saisir: Geeks pour les geeks Quiz Geeks Quiz Pratique Pratique
Sortir: Pour -> 1
Geeks -> 3
Pratique -> 2
Quiz -> 2

Saisir: Chaîne de mots Chaîne de fréquence
Sortir: Fréquence -> 1
Chaîne -> 2
Mot -> 1

Vous trouverez ci-dessous le programme C++ pour implémenter l'approche ci-dessus.

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 ; // Utilisé pour casser les mots stringstream ss(st); // Pour stocker des mots individuels string Word; while (ss>> Mot) FW[Mot]++; pour (auto m : FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

>

>

Sortir

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

Complexité temporelle : O(n*log(n)).

Espace auxiliaire : Sur).

3. Convertir un entier en chaîne

Depuis, les opérateurs d’insertion et d’extraction du flux de chaînes fonctionnent avec différents types de données. C’est pourquoi cela fonctionne bien avec les nombres entiers.

Nous insérerons un entier dans le flux de chaînes et après l'avoir extrait dans une chaîne, cette valeur entière deviendra une chaîne.

Code-

java point java

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

>

>

Sortir

1234>

Complexité temporelle : O(n) ,n est la longueur de l'entier

Espace auxiliaire : O(n)

Supprimer des espaces d'une chaîne à l'aide de Stringstream
Conversion de chaînes en nombres en C/C++