-1

我目前正在处理一个文本文件,其中包含固定数量的单词。我想要的只是计算一个单词在文本文件中出现的次数并输出它的密度。我在一个文本文件中有 266 个单词,我想输出单词的数量和密度以及单词本身。

e.g. (sample.txt)
The quick brown fox jumps over the lazy brown dog.

Output:
**Count     Density     Word**
   2         0.2%       The
   2         0.2%       brown

OP的代码:

#define DELIM " "
#include <stdio.h>

int main()
{
    int c; 
    int count = 0;
    FILE *file, *temp;
    char line[200];
    char *result, *result2;
    file = fopen("sample.txt", "r"); 
    temp = fopen("temp.txt", "w"); 

    if (file)
    { 
        while ((c = getc(file)) != EOF) 
        { 
            if (c == '.' || c == '(' || c == ')' || c == ',' || c == ':' || c == '-' || c == '’')
            {
                fputc(putchar(' '), temp);
                continue;
            } else
            {
                count = count + 1;
                fputc(c, temp);
            }
        }
        fclose(file); 
        fclose(temp); 
        temp = fopen("temp.txt", "r"); 
        while (fgets(line,200,temp) != NULL)
        {
4

1 回答 1

3
  1. 使用搜索优化的数据结构,例如二叉树或哈希表,按单词索引;
  2. 由于您不区分大小写,因此在存储之前将单词转换为小写或大写;
  3. 在每个节点,存储计数;
  4. 当你添加一个新单词时,它的计数是 1;
  5. 当您添加一个现有单词时,您将其计数增加 1;
  6. 当您处理任何单词时,增加一个全局计数器。

现在您可以遍历您的树或哈希表并输出字数。同时,您可以通过将字数除以全局数来输出密度。

于 2013-07-02T02:19:09.677 回答