procurar palavra num ficheiro texto em c

neutral

Power Member
eu preciso de procurar uma palavra num ficheiro de texto em c. existe alguma maneira de o fazer facilmente? existe alguma função que o faça? apenas preciso de verificar se está presente no ficheiro uma certa palavra. até pode ser uma contagem de palavras (se >0 então está presente) :)
 
que tal usares um strcmp???
crias um ciclo while para percorrer o texto e comparas a palavra inserida pelo utilizador com a string(texto que ta no fixeiro) se for igual pode returnar um printf em que dix que a palavra existe, caso não, dix que nao existe... se nao for isto que queres, explica-te melhor hahahaha

cumps
 
tenho isto

Código:
int procura_string_na_bd(char string[100]){
    
    FILE *bd;
    
    char linha[100];
    
    bd = fopen( "bd.txt", "r" );

}

depois da bd = fopen ......... meto um while como? é que não percebo como ponho o texto como uma string :/
 
desculpa mas pelo que deu para perceber tu nao tens conhecimento mínimo para o que queres fazer.



pelo menos pesquisa um pouco sobre a linguagem que pretendes usar...
 
tenho conhecimento minimo mas so comecei c este semestre. nao entendo qual e o vosso (e de outras pessoas a quem tambem ja perguntei) problema com uma pessoa querer aprender. realmente é melhor nem perguntar mais nada. aprendo mais sozinho do que aqui que so mandam bitaites quando nao sabem a historia toda.
 
consegui fazer alguns progressos. consigo ler o ficheiro bd.txt e imprimi-lo no output. agora preciso de separar as palavras para compara-las com a string. pretendia declarar cada palavra como uma variavel temporaria para poder comparar a usar o strcmp. o que acham que devo fazer?

Código:
#include <stdio.h>

int main(){
    
    int i;
    
    i=1;
    
    char c;
    
    FILE *bd;
    
    bd = fopen( "bd.txt", "r" );
    
    if( bd != NULL ){
        
        while(i != 0){
            
            c = fgetc(bd);
            
            if(c==EOF)
                i=0;
            
            printf("%c", c);
            
            
            }
        
    }
    
}
 
Vê lá se isto chega:

Código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    char nome[20], str[100];
    FILE *fp;
    fp = fopen("file.txt","r");
    if (!fp)
       exit(1);
    printf("Introduza a string para pesquisa: ");
    fgets(nome,sizeof(nome),stdin); [COLOR=Red]//lê uma string do teclado[/COLOR]
    nome[strlen(nome)-1]=nome[strlen(nome)]; [COLOR=Red]//retira o \n lido pelo fgets[/COLOR]
    while (fgets(str,sizeof(str),fp)!=NULL)[COLOR=Red] //lê linha a linha do ficheiro[/COLOR]
          if (strstr(str,nome)!=NULL) [COLOR=Red]//Verifica se uma string existe dentro de outra[/COLOR]
             printf("String existe!\n");
    fclose(fp);
    return 0;
}
 
Última edição:
Back
Topo