Samuel ferns Ответов: 2

Как подсчитать строки, слова и ключевые слова в текстовом файле


my task is to count the number of lines, words and keywords present in a text file. i was able to get the lines and the words counted, but i was unable to count the KEYWORDS present in the text file. there are 4 different keywords present in the text. could anyone help me with it. Thanks in advance.


Что я уже пробовал:

#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);
}

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
но я не смог сосчитать ключевые слова, присутствующие в текстовом файле

Проблема здесь в том, что вы не пытались сделать подсчет.

Попробуйте прочитать это как файл и посмотреть, сколько слов он найдет:
First

     Second-third
 Fourth    fifth

Вот это сюрприз. :)

Совет: Научитесь правильно делать отступы в вашем коде, это покажет его структуру и поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.
#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);
}

Стиль отступа - Википедия[^]

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]