Eliminar espacios de una string usando Stringstream

La solución para eliminar espacios de una string ya está publicada aquí . En este artículo se analiza otra solución que utiliza stringstream .

Algoritmo: 

1. Enter the whole string into stringstream.
2. Empty the string.
3. Extract word by word and concatenate to the string.

Programa 1: Uso de EOF

CPP

// C++ program to remove spaces using stringstream
#include <bits/stdc++.h>
using namespace std;
 
// Function to remove spaces
string removeSpaces(string str)
{
    stringstream ss;
    string temp;
 
    // Storing the whole string
    // into string stream
    ss << str;
 
    // Making the string empty
    str = "";
 
    // Running loop till end of stream
    while (!ss.eof()) {
 
        // Extracting word by word from stream
        ss >> temp;
 
        // Concatenating in the string to be
        // returned
        str = str + temp;
    }
    return str;
}
 
// Driver function
int main()
{
    // Sample Inputs
    string s = "This is a test";
    cout << removeSpaces(s) << endl;
 
    s = "geeks for geeks";
    cout << removeSpaces(s) << endl;
 
    s = "geeks quiz is awesome!";
    cout << removeSpaces(s) << endl;
 
    s = "I love     to     code";
    cout << removeSpaces(s) << endl;
 
    return 0;
}
Producción

Thisisatest
geeksforgeeks
geeksquizisawesome!
Ilovetocode

Programa 2: Usando getline()

CPP

// C++ program to remove spaces using stringstream
// and getline()
#include <bits/stdc++.h>
using namespace std;
 
// Function to remove spaces
string removeSpaces(string str)
{
    // Storing the whole string
    // into string stream
    stringstream ss(str);
    string temp;
 
    // Making the string empty
    str = "";
 
    // Running loop till end of stream
    // and getting every word
    while (getline(ss, temp, ' ')) {
        // Concatenating in the string
        // to be returned
        str = str + temp;
    }
    return str;
}
// Driver function
int main()
{
    // Sample Inputs
    string s = "This is a test";
    cout << removeSpaces(s) << endl;
 
    s = "geeks for geeks";
    cout << removeSpaces(s) << endl;
 
    s = "geeks quiz is awesome!";
    cout << removeSpaces(s) << endl;
 
    s = "I   love     to     code";
    cout << removeSpaces(s) << endl;
 
    return 0;
}
 
// Code contributed by saychakr13
Producción

Thisisatest
geeksforgeeks
geeksquizisawesome!
Ilovetocode

Complejidad temporal : O(n) 
Espacio auxiliar : O(1)

Este artículo es una contribución de Nishant . 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 *