stringstream en C++ y sus Aplicaciones

Un stringstream asocia un objeto de string con una secuencia que le permite leer la string como si fuera una secuencia (como cin). Para usar stringstream, debemos incluir el archivo de encabezado sstream . La clase stringstream es extremadamente útil para analizar la entrada. 

Los métodos básicos son:

  1. clear() – Para borrar la transmisión.
  2. str()- Para obtener y establecer un objeto de string cuyo contenido está presente en la transmisión. 
  3. operador <<- Agrega una string al objeto stringstream. 
  4. operador >>- Lee algo del objeto stringstream.

Ejemplos:

1. Cuente el número de palabras en una string

Ejemplos:

Entrada: Asipu Pawan Kumar
Salida: 3

Entrada: Geeks For Geeks Ide
Salida: 4

A continuación se muestra el programa C++ para implementar el enfoque anterior:

C++

// C++ program to count words in 
// a string using stringstream.
#include <iostream>
#include <sstream>
#include<string>
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 >> word)
        count++;
    return count;
}
 
// Driver code
int main()
{
    string s = "geeks for geeks geeks "
               "contribution placements";
    cout << " Number of words are: " << countWords(s);
    return 0;
}
Producción

 Number of words are: 6

2. Imprimir frecuencias de palabras individuales en una string

Ejemplos:

Entrada: Geeks For Geeks Quiz Geeks Quiz Practice Practice
Output: For -> 1
             Geeks -> 3
             Practice -> 2
             Quiz -> 2

Entrada: String de palabras String de frecuencia
Salida: Frecuencia -> 1
              String -> 2
              Palabra -> 1     

A continuación se muestra el programa C++ para implementar el enfoque anterior:

C++

// C++ program to demonstrate use
// of stringstream to count
// frequencies of words.
#include <bits/stdc++.h>
#include <iostream>
#include <sstream>
#include<string>
using namespace std;
 
void printFrequency(string st)
{
    // Each word it mapped to
    // it's frequency
    map<string, int>FW;
   
    // Used for breaking words
    stringstream ss(st);
   
    // To store individual words
    string Word;
 
    while (ss >> Word)
        FW[Word]++;
 
    map<string, int>::iterator m;
    for (m = FW.begin(); m != FW.end(); m++)
        cout << m->first << "-> "
             << m->second << "\n";
}
 
// Driver code
int main()
{
    string s = "Geeks For Geeks Ide";
    printFrequency(s);
    return 0;
}
Producción

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

Eliminación de espacios de una string usando Stringstream
Conversión de strings a números en C/C++

Este artículo es una contribución de ASIPU PAWAN KUMAR . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *