Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Script en C

Estas en el tema de Script en C en el foro de C/C++ en Foros del Web. Buenas a todos. En primer lugar explicare un poco mi problema, estoy estudiando en clases programacion en C. Quiero hacer un programa que me permita ...
  #1 (permalink)  
Antiguo 21/11/2014, 12:35
 
Fecha de Ingreso: noviembre-2014
Ubicación: Córdoba
Mensajes: 4
Antigüedad: 9 años, 5 meses
Puntos: 0
Script en C

Buenas a todos.
En primer lugar explicare un poco mi problema, estoy estudiando en clases programacion en C.
Quiero hacer un programa que me permita encontrar entre un texto, una cadena de caracteres especifica, por ejemplo: acdba, y una vez me la encuentre busque otra cadena pongamos badcad y me elimine desde la primera cadena hasta el inicio de la segunda quedando asi:

ejemplo del programa acdba que quiero badcad hacer
Quedando tal que asi:
ejemplo del programa badcad hacer

Este seria basicamente lo que me gustaria hacer, llevo ya varios dias probando y no consigo hacer que me borre hasta donde he establecido.

Saludos y gracias por la ayuda.
  #2 (permalink)  
Antiguo 22/11/2014, 14:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Script en C

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 original
  1. char 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 original
  1. char tag_ini[] = "<del>";
  2. char tag_end[] = "</del>";
  3. char *pstr_ini, *pstr_end;
  4.  
  5. pstr_ini = strstr(text, tag_ini);
  6. 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 original
  1. unsigned long p_ini, p_end;
  2.  
  3. p_ini = pstr_ini - text;
  4. 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

Etiquetas: clase, programa
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




La zona horaria es GMT -6. Ahora son las 16:29.