| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖, 1 人收藏
标题:【求助】在设计一个【单词统计】程序上遇到了困难,求大神们帮助一下小弟
取消只看楼主 加入收藏
boboxing
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-6
结帖率:100%
收藏(1)
已结贴  问题点数:10 回复次数:3 
【求助】在设计一个【单词统计】程序上遇到了困难,求大神们帮助一下小弟
最近学习了C语言,老师让我们设计一个统计一个英文文本里的某些单词数量,但是本人比较渣,设计的程序不完善,比如当输入if 时,统计的个数是正确的,但是如果if 和 i 一起输入的话,或者输入wonder和wonderful时,else和el时统计的个数就会出错,这是什么回事呢,求大神帮我完善一下程序。。。

题目是这样的:a)    单词统计
【问题描述】统计某篇英文小说中某些单词的出现次数。
【实现提示】英文小说存储在一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后全部完成。输出的每个单词的出现次数。约定小说中的词汇一律不跨行,这样每从文本文件中读入一行,就统计每个单词在这行中出现的次数,直到文件结束。
要求在程序运行时才输入文本文件名和要统计的词汇。



以下是我设计的程序:
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int comp(char text[], char key[])
{
int i, j, res;
int flag;
res = i =j = 0;
while(text[j] != '\0')
{
while (!(text[j] <= 'z' &&text[j] >='a')|| (text[j] <='Z' &&text[j] >= 'A'))
j++;
flag = 1;
i = 0;
while(key[i] != '\0' && flag == 1)
{
if (key[i] != text[j + i])
flag = 0;
i++;
}
if (flag && !(text[j+i] <= 'z' && text[j+i] >='a') || (text[j+i] <='Z' && text[j+i] >='A'))
{
res++;
}
while((text[j] <= 'z' && text[j] >='a') || (text[j] <='Z' && text[j] >='A'))
j++;
}
return res;
}
int main()
{
FILE *fp1;
int ans[1024],i,k;
char text[1024], key[512][1024],root[1024];
memset(ans,0,sizeof(ans));
printf("Please input the root ofyour file:");
scanf("%s", root);
fp1 = fopen(root,"r");//C:\\Users\\LonG\\Desktop\\a.txt
printf("Please input the numberof the words that you want to check:");
scanf("%d", &i);
for(k = 0; k < i; k++)
{
scanf("%s",key[k]);
}
while(fgets(text,1024,fp1)!=NULL)
{
for(k =0;k < i;k++)
{
ans[k] += comp(text,key[k]);
}
}
for(k =0; k < i; k++)
{
printf("%s : %d \n",key[k], ans[k]);
}
scanf("%s", key[0]);
fclose(fp1);
return 0;
}


[ 本帖最后由 boboxing 于 2013-11-6 10:40 编辑 ]
搜索更多相关主题的帖子: 文本文件 英文小说 wonder C语言 
2013-11-06 02:21
boboxing
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-6
收藏
得分:0 
回复 2楼 pangshch
您这个程序是统计单词的总个数吧,可能我描述的不太清楚,我的程序要求是统计某个单词出现的次数,我把题目也发上去了,如果您方便的话就再帮小弟看看吧,谢谢呀!
2013-11-06 10:46
boboxing
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-6
收藏
得分:0 
回复 4楼 rjsp
其实什么都不用考虑的,只需要搜索普通的单词的就行,现在的情况是统计一整个单词时不会出错,输入单词的其中一个字母时就会出错,我的程序不会识别一整个单词还是一个字母,是不是缺了一个检索单词长度的东西啊?
2013-11-06 12:53
boboxing
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-11-6
收藏
得分:0 
回复 6楼 pangshch
我觉得你这个思路不错,怎么我之前就没想到呢,谢谢您的帮助
2013-11-06 18:25
快速回复:【求助】在设计一个【单词统计】程序上遇到了困难,求大神们帮助一下小 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017816 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved