Reemplazo de caracteres &

06/08/2003 - 16:48 por Eyes | Informe spam
Hola a todos y gracias!

Deseo reemplazar los caracteres "&" de una cadena con la
cadena "#&38" o "chr(38)", antes de guardarla a disco.

Tengo algo así:

fstream cache(ruta, ios::in|ios::out);

if (!cache.is_open())
return S_FALSE;

cadena = (const char *)xml;
//la cadena xml es un tipo de datos no nativo de VC++

//aqui se debe reemplazar los caracteres "&"

cache.write(cadena, xml.getLength()-1);
cache.close();

¿Como puedo reempzarlos dichos caracteres?¿Existe una
función que lo haga directamente?(esto último porque lo
que consulte no pude implmentarlo) ¿HabrŽpa que
hacerlo "manualmente", recorriendo la cadena?

Saludos
 

Leer las respuestas

#1 Rodrigo Corral González
07/08/2003 - 15:12 | Informe spam
Puedes hacer lo que necesitas de manera sencilla usando los metodos
replace y find de la clase string;

#include <string>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
string cadena = "& Esta & cadena & contiene &";
const string remplazo = "#&38";

string::size_type pos = 0;
while((pos = cadena.find("&", pos)) != string::npos)
{
cadena.replace(pos, 1, remplazo);
pos = pos + 2;
}
cout << cadena << endl;

return 0;
}

Un saludo
Rodrigo Corral González

Preguntas similares