C语言程序计算重复单词的数量

时间:2014-05-01 19:33:59

标签: c

我有一个包含5个单词的文本文件,第二个包含2000个单词的文本文件我想用C语言编写程序,计算第二个文件中第一个文件的重复单词数,然后在屏幕上打印结果我是C语言的新手,任何人都可以帮我做...谢谢

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int read_line(FILE *in, char *buffer, size_t max)
{
  return fgets(buffer, max, in) == buffer;
}

int main(void)
{
    char b[2000];
    int wcount = 0;
    int j;
    char i[5];                       
    char File_path[40];
    char stuff[5] = "False";
    FILE *file1;
    FILE *file2;


   file1=fopen("test.txt", "r");                // my word list text file
   file2=fopen("dickens-chimes-379.txt","r");   // my text file

    for (j = 0; j < 5 && strcmp(i, stuff); j++)
    {
     fscanf(file1,"%s",i);
     while (fgets(b,2000, file2)!=NULL)
         {
           if((strcat(b,i)) ==NULL)   
             {    
              wcount=0;
             }
           wcount++;
         }
      printf("%s     %d\n",i,wcount);
      wcount=0;
    }
fclose(file1);
fclose(file2);
}

我的输入是(test.txt)有单词(爱,喜欢,书,去和测试) 输出是喜欢4296喜欢0本书0去0测试0

我需要file2中出现的单词的实际值

1 个答案:

答案 0 :(得分:1)

  

我在网上发现了这个代码,我不知道如何修改它,因为   我是一个新的c语言..我希望你可以帮助编写代码   同样的事情

我想提一下,这对初学者来说是一个相当复杂的问题。我建议先用简单的问题来预热。

然而,这里有一些高层次的想法:

  • 将业务逻辑中的I / O分开

    以5个单词的数组读取test.txt

    读取字符数组中的dickens.txt。 [如果文件非常大,那么可能需要修改此策略。]

  • 将测试数组和狄更斯数组传递给核心函数,比如repeatFinder()

非常高级别的伪代码:

for each word w in test array:
    scan dickens array
    if w occurs in dickens:
        w_counter +=1
    advance dickens array

在C中,您可以使用strstr( dickens, w ) [link]查找w

中是否存在dickens