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.