Foros del Web » Programación para mayores de 30 ;) » Programación General »

Funcion de cadenas C++

Estas en el tema de Funcion de cadenas C++ en el foro de Programación General en Foros del Web. Hola, estoy un poco liadillo con una función de tratamiento de cadenas. Lo q yo necesito es una funcion q intercambie una cadena por otra, ...
  #1 (permalink)  
Antiguo 19/01/2006, 18:50
 
Fecha de Ingreso: septiembre-2005
Ubicación: en el mundo
Mensajes: 41
Antigüedad: 19 años, 1 mes
Puntos: 0
Funcion de cadenas C++

Hola, estoy un poco liadillo con una función de tratamiento de cadenas. Lo q yo necesito es una funcion q intercambie una cadena por otra, por ejemplo:
cadena1="123456123"
cadena2="234"
cadena3="pepe"
Lo que haria seria buscar en cadena1 la cadena2 e intercambiarla por cadena3 quedando: cadena1="pepe456pepe".
A ver si alguien me puede echar una mano o darme alguna idea.
Muchas gracias.
  #2 (permalink)  
Antiguo 20/01/2006, 08:54
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Lo podes hacer con strstr (crea una no case sensitive si es necesario) y strcat. Tene en cuenta que tenes que usar memoria dinamica.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 20/01/2006, 18:56
 
Fecha de Ingreso: septiembre-2005
Ubicación: en el mundo
Mensajes: 41
Antigüedad: 19 años, 1 mes
Puntos: 0
Lo he intentado de la forma q me dices, pero no lo consigo.
Lo unico q consigo es encontrar las opariciones del valor q busco en la variable, pero ahi es donde se me complica. En el punto de modificarlo por el otro valor. voy a seguir intentandolo.
Muchas gracias por tu ayuda y tu tiempo.
  #4 (permalink)  
Antiguo 21/01/2006, 03:16
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Lo que podes hacer es crear una nueva cadena del tamaño necesario y asignarle ese nuevo puntero (liberando el primero, str en los prototipos que te dejo) a la antigua variable:

char *interchange(char *str, const char *search, const char *replace);
void interchange(char **str, const char *search, const char *replace);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 21/01/2006, 18:36
 
Fecha de Ingreso: septiembre-2005
Ubicación: en el mundo
Mensajes: 41
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola de nuevo, lo he conseguido utilizando la función:
char *strtok(char *s1, char *s2)
Que lo que hace es ir separando la cadena s1 en función de una cadena separadora que es s2. Asi es mucho más sencillo.
Muchas gracias por toda tu ayuda.
  #6 (permalink)  
Antiguo 22/01/2006, 04:05
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
De nadas y me alegro de que lo hayas podido solucionar.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:34.