Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/03/2009, 13:31
fragNatic
 
Fecha de Ingreso: octubre-2008
Mensajes: 43
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Eliminar sucbadena de una cadeba

La logica es la siguiente:

Código:
#include <stdio.h>
#include <string.h>

main()
{
	char *subca;
	int x;
	char * prueba;
	prueba="olamanola";

	char * cad_buscar;
	cad_buscar="man";

	subca=strstr(prueba,cad_buscar);
			if (subca) {
					x=subca-prueba;
					int offset;
					offset=x;
					x=strlen(prueba);
					int i; i=0;
					char  * copia;
                                        copia="";
					while (i<offset){ printf("%c",prueba[i]); copia[i]=prueba[i];i++; }
					int j;
                                        j=i;
					i=offset+strlen("man");
					while (i<strlen(prueba)){ printf("%c",prueba[i]); copia[j]=prueba[i];i++;}
					printf("\n");
					printf("%s\n",copia);

				}else printf("No hay esa subcadena");


}
La idea de ahora es, recorrer con los dos while las 2 partes de la cadena "prueba" (la que me interesa). Los bucles están bien, si quitais las instrucciones de asignación y dejais los printf y el incremento de i, vereis que lo visualiza bien. El problema es cuando intento copiar, por alguna razón, me da un fallo de segmentación que me trae loco.