How to create a function in C that searches for words in txt files in a predefined directory?

-2
void pesquisarexerword()
{

    DIR *dir;
    char *strdir, *strget,  t, *str;
    struct dirent *lsdir, *dirarq;
    FILE *arq;


    do{
        printf("\n Digite o Diretorio que Deseja Fazer a Pesquisa:\n");
        system("pause");
        fflush(stdin);//se desejar pesquisar outro diretotio ele volta aki
        gets(strdir);
        dir = opendir(strdir);//abrir o diretorio

        if( dir == NULL)
        {
        printf("\n\t****ERROR DIR NAO EXISTE*****"); return;
        }
        printf("\n Palavra que deseja Pesquisar:");
        gets(str);

        system("cls");

        do
        {
            dirarq = readdir(dir);//retorna o dir listando do arq
            arq = fopen(dirarq->d_name,"r");//abrir um arquivo no diretorio
            do
            {
                fgets(strget,244,arq);


                if(strcmp(str,strtok(strget,"")) == 0)//teste para achara a palavar no arquivo
                {
                printf("\n Nome do Arquivo Desejado:\n");
                printf("\n %s",dirarq->d_name);
               }

            }while(!feof(arq) || strcmp(str,strtok(strget,"")) != 0 );//teste se ha a frase dentro do arquivo ate acabar o arq

        }while( dir != NULL);//testa todo os arq do dir mencionado
        system("cls");

    printf("\n Deseja Pesquisar em outro Diretorio(Y/N)?:");
    scanf(" %c", &t);
    toupper(t);
    }while( t != 'N');

}
    
asked by anonymous 25.11.2017 / 19:56

1 answer

0

You need to call strtok the first time before entering the third loop.

token = strtok(strget, "");

Within the third loop, you should call NULL as a parameter:

token = strtok(NULL, "");
    
27.11.2017 / 02:21