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:
- clear() – Para borrar la transmisión.
- str()- Para obtener y establecer un objeto de string cuyo contenido está presente en la transmisión.
- operador <<- Agrega una string al objeto stringstream.
- operador >>- Lee algo del objeto stringstream.
Ejemplos:
1. Cuente el número de palabras en una string
Ejemplos:
Entrada: Asipu Pawan Kumar
Salida: 3Entrada: 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; }
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 -> 2Entrada: 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; }
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