Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/10/2013, 14:58
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: problema con cadena de caracteres, en c

Y la otra opcion es tokenizar por espacios y signos de puntuacion para obtener una lista de palabras, no se si el proceso será mas lento pero te ahorras comprovaciones

Código C:
Ver original
  1. char frase[] = "Una frase, como ejemplo. Otra cosa.";
  2. char *palabra, objetivo[] = "ejemplo";
  3.  
  4. //inicias el tokenizado
  5. if((palabra = strtok(frase, " ,.:;-'"))) {
  6.     while(palabra) {
  7.         //comparas
  8.         if(!strcmp(palabra, objetivo)) {
  9.             //ya tienes la palabra, la guardas donde quieras
  10.             printf("Encuentra '%s'\n", palabra);
  11.         }
  12.         //siguiente token
  13.         palabra = strtok(0, " ,.:;-'");
  14.     }
  15. }

El tokenizado por signos de puntuacion sirve para separar correctamente las palabras, y los otros signos es por si vas a usarlo con algun idioma que la escritura normal contemple el uso de apostrofes, guiones, etc (tendrias que añadir parentesis, interrogantes y todos los signos que se te ocurran)

Saludos
vosk