Eliminar un carácter concreto de un AnsiString
Tengo un AnsiString que puede tomar valores del estilo:
"Tommy\'s Dog"
y me gustaría que siempre que se encontrase una comilla simple (\') la eliminara. Quedando así:
"Tommys Dog"
¿Alguna idea de como hacerlo?
"Tommy\'s Dog"
y me gustaría que siempre que se encontrase una comilla simple (\') la eliminara. Quedando así:
"Tommys Dog"
¿Alguna idea de como hacerlo?
Hola,
ya que el tipo AnsiString es exclusivo del Builder, es muy probable que consigas una mejor respuesta en algún foro más específico, pero mientras tanto...
Un AnsiString tiene el método Pos, que te permite conocer la posición de una subcadena dentro de una cadena (También está AnsiPos para Unicode). Entonces, si sabes la posición de tu \' podrás eliminarlo:
AnsiString cadena = ""Tommy\'s Dog"";
int pos = cadena.Pos("\'");
if(pos) {
// borra un caracter desde pos:
cadena = cadena.Delete(pos, 1);
}
En lo personal, yo no pondría mucha energía en aprender a usar una herramienta que ya tiene sentencia de muerte dictada, así que en lugar de AnsiString quizás sea más económico aprender a usar la string de la biblioteca estándar del C++. Digo no más, como sugerencia.
Alejandro
ya que el tipo AnsiString es exclusivo del Builder, es muy probable que consigas una mejor respuesta en algún foro más específico, pero mientras tanto...
Un AnsiString tiene el método Pos, que te permite conocer la posición de una subcadena dentro de una cadena (También está AnsiPos para Unicode). Entonces, si sabes la posición de tu \' podrás eliminarlo:
AnsiString cadena = ""Tommy\'s Dog"";
int pos = cadena.Pos("\'");
if(pos) {
// borra un caracter desde pos:
cadena = cadena.Delete(pos, 1);
}
En lo personal, yo no pondría mucha energía en aprender a usar una herramienta que ya tiene sentencia de muerte dictada, así que en lugar de AnsiString quizás sea más económico aprender a usar la string de la biblioteca estándar del C++. Digo no más, como sugerencia.
Alejandro
el string tendra una forma del estilo:
char *frase
o
char frase[]
puedes probar:
char* frase_t1;
char* frase_t2;
.........
frase_t1=frase;
while(*frase_t1)
{
if(*frase_t1==' \' ')
{
frase_t2=frase_t1;
while(*frase_t2)
{
*frase_t2=*(frase_t2+1);
frase_t2++;
}
}
frase_t1++;
}
prueba eso. Si tienes alguna duda dime.
chao.
espero que te sirva.
char *frase
o
char frase[]
puedes probar:
char* frase_t1;
char* frase_t2;
.........
frase_t1=frase;
while(*frase_t1)
{
if(*frase_t1==' \' ')
{
frase_t2=frase_t1;
while(*frase_t2)
{
*frase_t2=*(frase_t2+1);
frase_t2++;
}
}
frase_t1++;
}
prueba eso. Si tienes alguna duda dime.
chao.
espero que te sirva.
