用c语言编写程序,统计某文件中某个单词出现次数

如,该文件是d盘中的file9.txt,要统计“dream”在里面出现的次数

#define N 20
#define M 100
#include<stdio.h>
#include<string.h>
int main()
{char m[20];
int k=0;
int d[M];
char b[N],e[10000];
char a[M][N];
char c=0;
int i;
for(i=0;i<M;i++)
d[i]=0;
printf("请输入文件名\n");
gets(m);
FILE *fp;
int n=0,o=0;
if(!(fp=fopen(m,"r+")))
{printf("文件未找到\n");}
else 
{
while(c!='#')/*判断是否到文件末尾*/
{for(i=0;i<N;i++)/*读入一个单词*/
{
fscanf(fp,"%c",&c);
if(c==' '||c=='#') break;
else b[i]=c;
}
b[i]='\0';/*结尾符*/
if(k==0) {strcpy(a[k],b);d[k++]++;}/*第一次,把b复制到a【0】*/
else {
for(i=0;i<k;i++)
{
if(!strcmp(b,a[i])) {d[i]++;break;}
}
if(i==k){strcpy(a[k],b);d[k]++;k++;}

}
}
for(i=0;i<k;i++)
printf("%s %d\n",a[i],d[i]);
getchar();
return 0;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
    FILE* file;
    int i=0;
    int p,total=0;
    
    file = fopen("file9.txt","r+b");
    if(file == null) {
        printf("文件不存在\n");
        return 0;
    }
    
    while(!feof(file)) {
        p = strncmp(file, "dream", 5);
        if(p == 0) total += 1;
        i += 1;
        fseek(file,1,0);
    }
    
    printf("文件中特殊单词的总数为:%d\n",total);
    
    return 1;
}

本回答被提问者和网友采纳
第2个回答  2015-08-27
可以借鉴如下例程:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
int i=0;
int p,total=0;
fopen("file9.txt","r+b");
if(file == null) {
printf("文件不存在\n");
return 0;
}

while(!feof(file)) {
p = strncmp(file, "dream", 5);
if(p == 0) total += 1;
i += 1;
fseek(file,1,0);
}

printf("文件中特殊单词的总数为:%d\n",total);

return 1;
}
第3个回答  2014-09-03
读取文件里的字符串到一个字符数组里面,直接用strncmp(str+k,"dream",5)函数解决,把k++一路判断下去不就行了追问

关键是我啥都不会啊,,,能不能把代码写了给我

相似回答