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 originalchar frase[] = "Una frase, como ejemplo. Otra cosa.";
char *palabra, objetivo[] = "ejemplo";
//inicias el tokenizado
if((palabra
= strtok(frase
, " ,.:;-'"))) { while(palabra) {
//comparas
if(!strcmp(palabra
, objetivo
)) { //ya tienes la palabra, la guardas donde quieras
printf("Encuentra '%s'\n", palabra
); }
//siguiente token
palabra
= strtok(0, " ,.:;-'"); }
}
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