logo

stringstream en C++ y sus aplicaciones

Un stringstream asocia un objeto de cadena con una secuencia, lo que le permite leer la cadena como si fuera una secuencia (como cin). Para usar stringstream, necesitamos incluir corriente archivo de cabecera. La clase stringstream es extremadamente útil para analizar entradas.

Los métodos básicos son:



    clear()- Para borrar la secuencia. str(): para obtener y configurar un objeto de cadena cuyo contenido está presente en la secuencia. operador <<- Agrega una cadena al objeto stringstream. operador>>- Lee algo del objeto stringstream.

Ejemplos:

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

Ejemplos:



Aporte: Asipu Pawan Kumar
Producción: 3

Aporte: Idea de frikis para frikis
Producción: 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> #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>> palabra)> >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>

Complejidad del tiempo: O(n*log(n)).

Espacio auxiliar: En).

2. Imprima frecuencias de palabras individuales en una cadena.

Ejemplos:

Aporte: Geeks para Geeks Quiz Geeks Quiz Práctica Práctica
Producción: Para -> 1
Frikis -> 3
Práctica -> 2
Prueba -> 2

Aporte: Cadena de palabras Cadena de frecuencia
Producción: Frecuencia -> 1
Cadena -> 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> using> namespace> std;> void> printFrequency(string st)> {> >// Each word it mapped to> >// it's frequency> >mapint>FW; // Usado para dividir palabras stringstream ss(st); // Para almacenar palabras individuales string Word; mientras (ss>> Palabra) FW[Palabra]++; para (auto m: FW) cout<< m.first << '->'<< m.second << ' '; } // Driver code int main() { string s = 'Geeks For Geeks Ide'; printFrequency(s); return 0; }>

transmitir cadena a int

>

>

Producción

For->1 Frikis-> 2 Ide-> 1>

Complejidad del tiempo: O(n*log(n)).

Espacio auxiliar: En).

3. Convertir entero en cadena

Desde entonces, los operadores de inserción y extracción de flujos de cadenas funcionan con diferentes tipos de datos. Por eso funciona bien con números enteros.

Insertaremos un número entero en el flujo de cadena y después de extraerlo en una cadena, ese valor entero se convertirá en una cadena.

Código-

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

>

>

Producción

1234>

Complejidad del tiempo: O (n) ,n es la longitud del número entero

Espacio auxiliar: O(n)

Eliminar espacios de una cadena usando Stringstream
Convertir cadenas en números en C/C++