#include <stdio.h>
#include <string.h>
void procura(char *str, FILE *fp){
    int pos_atual, tam = strlen(str)+1;
    char ch, word[tam];
    while (!feof(fp)){
        pos_atual = SEEK_CUR;
        if(*str==(ch=getc(fp))){
            fseek(fp, -1, pos_atual);
            fgets(word, tam, fp);
            if(!strcmp(word, str)){
                printf("Palavra encontrada: %s", word);
                return;
            }
            pos_atual -= tam-1;;
        }
    }
    printf("A palavra digitada não foi encontrada.");
}
main(){
    FILE *fp;
    char word[15], arq[15];
    printf("digite o nome do arquivo que você deseja ler: ");
    scanf("%s", arq);
    fp = fopen(arq, "r+");
    printf("Digite a palavra que queira buscar no arquivo %s: ", arq);
    scanf("%s", word);
    procura(word, fp);
    getch();
} A função aí em cima procura() vai procurar pela string str no arquivo fp, onde tam é o tamanho da string. A função vai ler caracter por caracter até achar um que coincida com o primeiro caracter da string, depois faz-se a comparação com strcmp() que se retornar zero, ou seja, se as strings forem iguais, vai escrever que achou e retorna pra main. Caso as strings não sejam iguais, pos_atual vai ser decrementada com tam-1 passando assim pro caracter sucessor, pra fazer denovo a comparação com o primeiro caracter da string até encontrar e assim ver se achou denovo, e tal. Espero ter ajudado. Abraço.