Suponiendo que el texto lo tienes en memoria (si lo tienes en un archivo, lo cargas en memoria y sigues).
Sea este el texto en memoria:
Código C:
Ver originalchar text[] = "esto es <del>una prueba de texto</del> para ver como funciona";
Primero buscas los tags de inicio y final con strstr (o como quieras):
Código C:
Ver originalchar tag_ini[] = "<del>";
char tag_end[] = "</del>";
char *pstr_ini, *pstr_end;
pstr_ini
= strstr(text
, tag_ini
);pstr_end
= strstr(text
, tag_end
);
Con esto obtienes punteros al primer caracter de cada tag, de ahi puedes encontrar las posiciones de los caracteres:
Código C:
Ver originalunsigned long p_ini, p_end;
p_ini = pstr_ini - text;
p_end = pstr_end - text - 1;
Y ya lo tienes, solo has de recuperar los caracteres que esten en posicion menor que p_ini y mayor que p_end. Con esto omitiras del primer tag hasta antes del ultimo.
Recuerda que como siempre hay que hacer algunas comprovaciones de error, como por ejemplo el caso que en el texto proporcionada no hubiera los tags (el strstr retorna 0 si no encuentra coincidencias).
Saludos
vosk