упражнение состоит в подсчете количества строк, слов и ключевых слов, присутствующих в текстовом файле. Я смог получить количество строк и количество слов, но не смог подсчитать КЛЮЧЕВЫЕ СЛОВА, присутствующие в текстовом файле. в тексте 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);