我有一个包含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中出现的单词的实际值
答案 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