Reemplazar espacios en blanco por \'_\' en C++

ramcon12
26 de Octubre del 2009
Saludos
Estoy teniendo problemas para realizar la opreacion que les puse en el titulo. Si puedo reemplazar el espacio con una cadena que ya esta inicializada, por ejemplo, tengo esto:

string s("Un carro del año")

de esta forma si logro que se imprima esto:

Un_carro_del_año

El problema que necesito que la cadena se ingrese desde el teclado y despues se reemplazen los espacios.
Espero puedan ayudarme. Gracias.

_luis_
26 de Octubre del 2009
#include<iostream>
#include<string>
using namespace std;
main()
{
string s;
cout<<"Ingrese el texto deseado :";
cin>>s;
cout<<endl;
cout<<s<<endl;
system("pause");
return 0;
}

ramcon12
26 de Octubre del 2009
Gracias pero eso no funciona ya que solo estas capturando una cadena
aqui te dejo el codigo que tengo:
#include<iostream>
#include<string>
using namespace std;
int main()
{

string s("Feliz año nuevo");
string se("_");
//cout<<"Dame una cadena con minimo tres palabrasn";
//cin.getline((char*)s.c_str(),256);
//cin>>s;
cout<<s<<endl;
for(int x=0;x<s.length();x++)
{
int q=s.find(' ');
if(x==q)
s.replace(x,1,se);

}
cout<<s<<endl;
/*int i=0;
while(s[i]==' ')
{i++;
}
s.replace(i,1,se);
cout<<s;
return 0;
}