#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.