считать строки, слова и ключевые слова в текстовом файле - PullRequest
0 голосов
/ 01 ноября 2019

упражнение состоит в подсчете количества строк, слов и ключевых слов, присутствующих в текстовом файле. Я смог получить количество строк и количество слов, но не смог подсчитать КЛЮЧЕВЫЕ СЛОВА, присутствующие в текстовом файле. в тексте 4 разных ключевых слова. Может ли кто-нибудь помочь мне с этим. Заранее спасибо.

мой код:

#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdio.h>

int main()
{
FILE *fp;
char filename[100];
char ch;
int linecount, wordcount;


linecount = 0;
wordcount = 0;


printf("Enter a filename :");
gets(filename);


 fp = fopen(filename,"r");


 if ( fp )
 {

     while ((ch=getc(fp)) != EOF) {


         if (ch == ' ' || ch == '\n') { ++wordcount; }

    if (ch == '\n') { ++linecount; }

     }

     if (wordcount > 0) {
      ++linecount;
      ++wordcount;
     }
  }
 else
    {
       printf("failed to open the file\n");
      }

  printf("Lines : %d \n", linecount);
  printf("Words : %d \n", wordcount);

return(0);
}

int getNextWord( char *target, size_t targetSize, fp )
{
size_t i = 0;
int c;

while ( (c = fgetc( fp )) != EOF && i < targetSize - 1 )
{
  if ( isspace( c ) )
  {
    if ( i == 0 )
      continue;
    else
      break;
  }
  else
  {
    target[i++] = c;
  }
}

target[i] = 0;      
return i > 0;       
}

int match( const char *word )
{
const char *targets[] = {"and", "the", NULL};
const char *t = targets;

while ( t && strcmp( t, word ))
  t++;

return t != NULL; 
}

#define MAX_WORD_LENGTH 10 

char word[MAX_WORD_LENGTH + 1];

while ( getNextWord( word, sizeof word, fp )) 
{                                            
if ( match( word ) )
  count++;
}
printf("%d",count);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...