[C]procurar palavras em ficheiros

Ruanes

Power Member
oi estou aqui com um problema:

estou a tentar fazer programa e queria que esse programa procura-se uma palavra(ou varias) num ficheiro.

O problema e que nao sei como faze-lo e precisa-va da vossa ajuda.

P.S.Talvez com loop's e if's nao sei.
 
Lês todas as palavras do ficheiro para uma estrutura (uma hash table é boa ideia) e procuras a palavras que queres nessa estrutura.

É uma boa ideia se o ficheiro for pequeno.
Imagina que o ficheiro tem 1GB(improvável), seria complicado passar isso tudo para memória(ainda por cima em C que não tem protecção de memória).
O ideal seria ler palavra a palavra, e fazer um match com a pretendida.
 
É uma boa ideia se o ficheiro for pequeno.
Imagina que o ficheiro tem 1GB(improvável), seria complicado passar isso tudo para memória(ainda por cima em C que não tem protecção de memória).
O ideal seria ler palavra a palavra, e fazer um match com a pretendida.

Exacto, para ficheiros grandes existe esse problema. No entanto, com esse método é preciso ler uma vez o ficheiro para cada palavra.
 
Olá, além de todas as sugestões que foram dadas, também podes utilizar o algoritmo dos senhores Knuth, Morris e Pratt: é extremamente eficiente, tanto em termos de memória, como de tempo.

Nesse link encontras uma explicação interactiva do algoritmo e código C.

Cumps,
JP
 
Lês todas as palavras do ficheiro para uma estrutura (uma hash table é boa ideia) e procuras a palavras que queres nessa estrutura.

e isso que eu quero, só queria saber como e que isso se faz.

obrigado mas já consegui.

usei a funcção fgets() que le uma string num ficheiro.
 
Última edição pelo moderador:
Back
Topo