1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

procurar palavra num ficheiro texto em c

Discussão em 'Programação' iniciada por neutral, 13 de Março de 2008. (Respostas: 11; Visualizações: 6867)

  1. neutral

    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) :)
     
  2. mrjm

    mrjm Power Member

    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
     
  3. neutral

    neutral Power Member

    tenho um sistema de login com nicks e pass num ficheiro de texto. apenas quero ver se o nick esta ocupado. obrigado
     
  4. mrjm

    mrjm Power Member

    entao podes faxer o k eu te disse =)
     
  5. neutral

    neutral Power Member

    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 :/
     
  6. mrjm

    mrjm Power Member

    fazes tipo um for entao, em que tens uma variavel que percorre o texto, e mais ou menos isto
     
  7. neutral

    neutral Power Member

    posso usar bd como array?
     
  8. m00s

    m00s Power Member

    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...
     
  9. neutral

    neutral Power Member

    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.
     
  10. neutral

    neutral Power Member

    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);
                
                
                }
            
        }
        
    }
    
     
  11. Baderous

    Baderous Banido

    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: 14 de Março de 2008
  12. neutral

    neutral Power Member

    perfeito! muito obrigado ;)

    ps: tens um } a mais no fim ;)
     

Partilhar esta Página