文档库 最新最全的文档下载
当前位置:文档库 › c语言 统计一个字符串中单词的个数

c语言 统计一个字符串中单词的个数

c语言 统计一个字符串中单词的个数
c语言 统计一个字符串中单词的个数

c语言统计一个字符串中单词的个数

这个程序可以自动清除多余的空格。

#include "stdio.h"

int count_word(char *str);

void main()

{

char str1[80];

int sum=0;

puts("\n please enter a string");

gets(str1);

sum=count_word(str1);

printf("there are %d words in this sentence",sum);

}

int count_word(char *str)

{

int count,flag;

char *p;

count=0;

flag=0;

p=str;

while(*p!='\0')/*当字符串没有到结尾的时候,重头到尾的循环*/

{

if(*p==' ')/*假如字符串遇到空格,就将flag清零,同时可以过滤掉多余的空格*/

flag=0;

else if(flag==0)/*当字符串不是空格时,假如flag为0,那么计算器加1,既是遇到空格后的第一个字符时*/

{

flag=1;/*将flag标记回1,这样在遇到第一个字符后的字符时可以将他过滤掉,直到遇到空格时,在清零*/

count++;

}

p++;

}

return count;

}

C语言编程题求教----输入一个字符统计其中的单词个数

输入一串字符统计其中的单词个数。*/各个单词间用空格隔开空格数可以是多个/*

例子:

Input:Let's go to room 209

count=5

这是我做的程序:

#include

int main(void)

{

char ch;

int c,m;

printf("Input words:");

c=1;

while((ch=getchar())!='\n'){

if(ch==' ')

c++;

}

printf("count=%d\n",c);

return 0;

}

但是如果是多个空格就要多统计出单词个数来。。。请教要怎样才能使多个空格只算作一个呢??

设置一个标志word,表示单词是否开始。如果一直是空格的话,word=0,一旦看到不是空格,并且word是0,则意味着一个新单词开始,将个数增1并将word 置为1。

#include

main()

{ char c;

int i,num=0,word=0;

while((c=getchar())!='\n')

if(c==' ') word=0;

else if(word==0)

{ word=1; num++; }

printf("There are %d words in the line\n",num);

}

逆序重新存放

#include

main()

{

int a[5], i, temp; /*定义数组及变量为基本整型*/

printf("please input array a:\n");

for (i = 0; i < 5; i++) /*逐个输入数组元素*/

scanf("%d", &a[i]);

printf("array a:\n");

for (i = 0; i < 5; i++) /*将数组中的元素逐个输出*/

printf("%d ", a[i]);

printf("\n");

for (i = 0; i < 2; i++) /*将数组中元素的前后位置互换*/

{

temp = a[i]; /*元素位置互换的过程借助中间变量temp*/

a[i] = a[4-i];

a[4-i] = temp;

}

printf("Now array a:\n");

for (i = 0; i < 5; i++) /*将转换后的数组再次输出*/

printf("%d ", a[i]);

}

#include

void main()

{

int a[10],i,j,temp;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<5;i++)

for(j=9-i;1;j++)

{

temp=a[j];

a[j]=a[i];

a[i]=temp;break;

}

for(i=0;i<10;i++)

printf(" %d",a[i]);

}

//3. 将一个数组中的值按逆序重新存放。

//例如,原来顺序为10、60、5、42、19,要求改为19、42、5、60、10。#include

using namespace std;

int main()

{int a[5]={10,60,5,42,19},h[5],b,i;

for(b=0;b<=5/2;b++)

for(i=0;i<=4;i++)

h[4-i]=a[i];

for(i=0;i<=4;i++)

{

a[i]=h[i];

cout<

}

return 0;

}

#include

#include main()

{

char a[100],t;

int i,k;

gets(a);

k=strlen(a)-1;

for(i=0;2*i<=k;i++)

{

t=a[i];

a[i]=a[k-i];

a[k-i]=t;

}

puts(a);

}

统计英文词汇

A abscissa横坐标 absence rate缺勤率 absolute number绝对数 absolute value绝对值 accident error偶然误差 accumulated frequency累积频数 alternative hypothesis备择假设 analysis of data分析资料 analysis of variance(ANOVA)方差分析 arith-log paper算术对数纸 arithmetic mean算术均数 assumed mean假定均数 arithmetic weighted mean加权算术均数asymmetry coefficient偏度系数 average平均数 average deviation平均差 B bar chart直条图、条图 bias偏性 binomial distribution二项分布 biometrics生物统计学 bivariate normal population双变量正态总体 C cartogram统计图 case fatality rate(or case mortality)病死率 census普查 chi-sguare(X2) test卡方检验 central tendency集中趋势 class interval组距 classification分组、分类 cluster sampling整群抽样 coefficient of correlation相关系数 coefficient of regression回归系数 coefficient of variability(or coefficieut of variation)变异系数 collection of data收集资料 column列(栏) combinative table组合表 combined standard deviation合并标准差 combined variance(or poolled variance)合并方差complete survey全面调查

统计出现次数最多的3个单词

题目要求:使用c语言编程,统计出给定data.dat文件中的出现次数最多的 三个单词,以及这三个单词的出现的次数,计算程序运行的时间,结果写入result.dat中。(注:这里不区分单词大小写,如he与He当做是同一单词计数) 本程序使用二叉排序树方式将所有单词放入树中然后在其中查找相同单词,出现相同的则把它的出现次数加1,否则继续在左右子树中查找。最后使用数组将A[first],A[second],A[third]三个单词进行排序,并用这三个单词余剩余所有单词进行比较,不断更新,最后找到出现次数最多的三个单词,输出到文件中。 #include #include #include #include #include #define MAX 20 typedef struct BTNode { char *word; unsigned long count; struct BTNode *lchild; struct BTNode *rchild; }BTNode; struct words { char str[20]; //用来存放该单词 int num; }A[7500000]; struct words a; int k=0; int sum=0; void GetWord(FILE *fp,int lim,char word[])//获取一个单词 { char *w=word; char c; while(isspace(c=getc(fp))); //跳过空格 if(c!=EOF) c=tolower(c); *word++=c; if(!isalpha(c))//单词第一个不是字母,退出 {

C语言统计文件中的字符数、单词数以及总行数

C语言统计文件中的字符数、单词数以及总行数 统计文件的字符数、单词数以及总行数,包括: 每行的字符数和单词数 文件的总字符数、总单词数以及总行数 注意: 空白字符(空格和tab缩进)不计入字符总数; 单词以空格为分隔; 不考虑一个单词在两行的情况; 限制每行的字符数不能超过1000。 代码如下 #include #include int *getCharNum(char *filename, int *totalNum); int main(){ char filename[30]; // totalNum[0]: 总行数totalNum[1]: 总字符数totalNum[2]: 总单词数 int totalNum[3] = {0, 0, 0}; printf("Input file name: "); scanf("%s", filename); if(getCharNum(filename, totalNum)){ printf("Total: %d lines, %d words, %d chars\n", totalNum[0], totalNum[2], totalNum[1]); }else{ printf("Error!\n"); } return 0; } /** * 统计文件的字符数、单词数、行数 * * @param filename 文件名 * @param totalNum 文件统计数据 * * @return 成功返回统计数据,否则返回NULL **/ int *getCharNum(char *filename, int *totalNum){ FILE *fp; // 指向文件的指针 char buffer[1003]; //缓冲区,存储读取到的每行的内容 int bufferLen; // 缓冲区中实际存储的内容的长度 int i; // 当前读到缓冲区的第i个字符 char c; // 读取到的字符

杭电1004统计单词最多的个数

Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 51003 Accepted Submission(s): 18283 Problem Description Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result. This year, they decide to leave this lovely job to you. Input Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters. A test case with N = 0 terminates the input and this test case is not to be processed. Output For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case. Sample Input 5 green red blue red red 3 pink orange pink #include"stdio.h" #include"string.h" #define N 1111

统计用的英文单词

统计用的英文单词 decimal ['des?ml] adj. 十进位的,小数的n. 小数 align [??la?n] vt. 使成一线,使结盟;排整齐vi. 排列;成一条线 paste [pe?st] vt. 粘贴,张贴;以…覆盖于 tutorial [tju:?t?:ri?l] n. 个人辅导的;教程,辅导材料;使用说明书adj. 家庭教师的;指导教师的;辅导的;监护人的 string [str??]n. 绳子,带子;线丝,植物纤维;串;[计算机科学]字符串vt. 上弦,调弦;使排成一行或一系列;绑,系或用线挂起;延伸或扩展 gallery ['ɡ?l?r?] . 画廊,走廊;(教堂,议院等的)边座;旁听席;大批观众 sort cases 数据排序; 排序案件 std. deviation [计][WIN]标准偏差standard deviation variance [?ve?ri?ns] n.;<数>方差 S.E. mean 均值的标准误standard error skewness [sk'ju:nes] 偏斜 kurtosis [k?:'t??s?s] n. 峰度,峰态,峭度 dependent list 因变量列表 Levene’s Test for Equality of variances Levene's方差齐性检验sig. abbr. signetur (Latin=mark with directions) (拉丁语)方向标志signetur ['s?ɡn?t?:] [医](拉)标记,用法签

signature [?s?gn?t??(r)] n. 签名;署名;识别标志,鲜明特征;[医] 药的用法说明 df degree of freedom 自由度 std. Error Mean SEM 均数标准误【是描述均数抽样分布的离散程度及衡量均数抽样误差大小的尺度,反映的是样本均数之间的 变异。标准误用来衡量抽样误差。标准误越小,表明样本统计 量与总体参数的值越接近,样本对总体越有代表性,用样本统 计量推断总体参数的可靠度越大。因此,标准误是统计推断可 靠性的指标。】 One-way ANOV A 单变量-单因素方差分析 analysis of variance 方差分析ANOV A GLM Univariate 单变量多因素方差分析 GLM Multivariate 多变量多因素方差分析 Univariate [ju:n?'ve?r??t] adj. 单变量的,单变的 方差分析,多元回归,t检验都属于参数统计检验(parametric ),参数检验的前提是总体方差必须相同,如果不满足方差齐性检验,是不能进行方差分析,t检验,多元回归等参数检验。方差不齐的情况下我们可以做非参数检验(non-parametric),Tamhane's T2是非参数检验的一种,不是方差分析。除了Tamhane’s T2,在方差不齐的情况下可用的非参数检验还有,Wilcoxon Test, Friedman Test, Mann-whitney Test, Kruskal-Wallis test, 等等。

统计文本中单词的个数

江西理工大学软件学院 计算机类课程实验报告 课程名称: 统计文本中单词个数 班级: 11软件会计4班 姓名: 黄健 学号: 江西理工大学软件学院 一、目录 1、目录--—-——-—-—------—---——--——-----------——---——-—-------—-—-----—2 2、实验目得—-——-—--—-—---——---—----------------—--—-—-—------—---——3 3、实验要求—-------—------——-------——-----————-----——--—----—------3 4、实验仪器设备与材料-———--—-----------—----—-—---—--—----—---3 5、实验原理—--—-—-—-—-———---——--—--————-—---———-—-—-———---——--——---4 6、实验步骤———-—------—-—-——-------——-------—-------——--—-------———5 7、实验原始记录-----————--—----———-—--—--—-——

-—-------——-—--—---—6 8、实验数据分析计算结果—-—--—-------—----—--—------—--——-—-—-10 9、实验心得体会—-—-—---—-—-—--——-—-----—-------—--———--——-—--—-—-11 10、思考题-————---—-——---—---—-—---—-——----—--—————--—-—-—----—---——12 二:实验目得: 一个文本可以瞧成就是一个字符序列,在这个序列中,有效字符被空格分隔为一个个单词、设计出一种算法来去统计出一个文本中单词得个数。 三:实验要求: 1.被处理文本得内容可以由键盘读入 2.可以读取任意文本内容,包括英文、汉字等 3.设计算法统计文本中单词得个数 4.分析算法得时间性能 四:实验仪器设备与材料 参考书籍 电脑及其配件 Microsoft VisulaiC++6、0 五:实验原理 设计一个计数器count统计文本中单词得个数。在逐个读入与检查

课设报告统计英文单词数

“程序设计基础” 课程设计报告 (一)需求和规格说明

该系统的功能是给定一个英文段落(单词个数<100),利用哈希表(表长最大为20)统计单词出现的频度,并能根据要求显示出给定单词在段落中出现的位置。执行程序时由用户在键盘上输入程序中规定的运算命令;相应的输入数据和运算结果显示在其后。 该系统的实现是通过哈希函数的建立和查找分析,用线性探测再散列来处理冲突,从而得到哈希表并实现哈希表的查找。该文章对哈希函数的应用方法是使用除留余数法构造,使用链地址法进行冲突处理。 2.1技术可行性 哈希查找是通过计算数据元素的存储地址进行查找的一种方法。 哈希查找的操作步骤: 用给定的哈希函数构造哈希表; 根据选择的冲突处理方法解决地址冲突; 在哈希表的基础上执行哈希查找。 2.2需求可行性 世界上的事物都是有发展的,企图跨越阶段或者停滞,一切生命就都没有存在的理由了。频率就是一个既动态又静态的东西,我们能肯定的是很多古词和今词是不一样的,今日被淘汰了,也就是说,今天的频率的统计是一定有确定的结论的。也有一些古词仍在今日用着,或者在淘汰之中,所以频率难以确定。我们知道黑天和白天是有区别的,但它们的交界点,却不是那么容易分辨了,恐怕需要经过科学家的精密研究。交界点不容易确定,并不意味着事物之间没有区别。世界上的事物都是有区别又有联系的。有些人读书读傻了,钻了牛角尖,他弄不清两个事物之间的区别应该划在哪里,后来就连两个事物之间有区别也不敢认定了。频率的统计是为了区别常用词和非常用词,方法可能不准确,但不至于否定常用词和非常用词之间的区别吧。我们应该使统计精密起来。火车今天不用火了,但如果当初也不用,就没有今天的“火车”了。事物的变化是不可能停止的,但总还有个静态的定位,否则人们就无法认识任何事物了。频率虽然是个复杂的问题,但科学的研究是必要的。 3 需求分析 给定一个英文段落(单词个数<100),利用哈希表(表长最大为20)统计单词出现的频度,并能根据要求显示出给定单词在段落中出现的位置。执行程序时由用户在键盘上输入程序中规定的运算命令;相应的输入数据和运算结果显示在其后。测试数据:给定一个英文段落 显示出不同英文单词的出现频度。 给定一个英文单词,判断段落中是否含有该单词,如有,依次显示出该单词在段落中出现的位置。 基本要求:哈希函数使用除留余数法构造,使用链地址法进行冲突处理。 (二)设计 构造哈希函数 void initial() //哈希表的初始化 { for(int i(0); i<100; i++) { haxilist[i].head=NULL; haxilist[i].tail= NULL; } cout<<"哈希表初始化完成,准备读入文件,请将需要操作的文件命名为file.txt放到文件夹中"<

单词统计

江西理工大学 实 验 报 告 系机电工程班级11机械电子(2)姓名杨锦其学号11212203 课程数据结构教师刘廷苍

实验题目:统计文本中单词的个数 一.实验目的 一个文本可以看成是一个字符序列,在这个序列中,有效字符被空格分隔为一个个单词。统计算法统计文本中单词的个数。 二.实验内容 (1)被处理文本的内容可以由键盘读入; (2)可以读取任意文本内容,包括英文、汉字等; (3)设计算法统计文本中的单词个数; (4)分析算法的时间性能。 三.设计与编码 1.理论知识 设置一个计数器count统计文本中的单词个数。在逐个读入和检查字符时,需要区分当前字符是否是空格。不是空格的字符一定是某个单词的一部分,空格的作用就是分隔单词。但即使当前字符不是空格,他是不是新词的开始还依赖于前一个字符是否是空格,只有当前字符是单词的首字符时,才可以给计数器加1。如果遇到非空格字符,则是新词。读入过程在某单词内部,则不会是新词。 2.分析 输入要查找的单词之后,单词插入链表,停止输入后,程序开始在文本字符中查找链表中的单词。 程序从文本数组顺次扫描,并在扫描到空格时记录一个单词的扫描结束,并记录单词所含字母个数,然后查找链表,如有和该单词字母个数相同的记录则进行比较,否则继续查找下一个直到链表尾。此后程序继续扫描文本字符数组的下一个单词并和链表中单词进行相同的比较过程,直到字符数组扫描完毕。 3.详细代码 #include #include #include #include using namespace std; #ifndef SOURCE_H #define SOURCE_H struct node {

统计文本中单词地个数

理工大学软件学院计算机类课程实验报告 课程名称:统计文本中单词个数班级:11软件会计4班 姓名:黄健 学号:11222122 理工大学软件学院

一、目录 1、目录--------------------------------------------------------------2 2、实验目的--------------------------------------------------------3 3、实验要求--------------------------------------------------------3 4、实验仪器设备与材料-----------------------------------------3 5、实验原理--------------------------------------------------------4 6、实验步骤--------------------------------------------------------5 7、实验原始记录--------------------------------------------------6 8、实验数据分析计算结果--------------------------------------10 9、实验心得体会--------------------------------------------------11 10、思考题----------------------------------------------------------12

统计单词个数 C语言程序源代码

/*统计输入的单词数等信息*/ #include #include //为isspace()提供函数原型 #include //为bool、true和false提供定义 #define STOP '|' int main(intargc, char *argv[]) { char c;//读入字符 char prev;//前一个读入字符 long n_chars = 0L;//字符数 intn_lines = 0;//行数 intn_words = 0;//单词数 intp_lines = 0;//不完整函数 boolinword = false;//如果c在一个单词中,则inword等于true printf("Enter text to be analyzed (| to terminate): \n"); prev = '\n';//用于识别完整的行 while((c = getchar()) != STOP) { n_chars++;//统计字符 if(c == '\n') n_lines++;//统计行 if(!isspace(c) && !inword) { inword = true; n_words++; } if(isspace(c) &&inword) inword = false;//到达单词的尾部 prev = c; } if(prev != '\n') p_lines = 1; printf("characters = %ld, words = %d, lines = %d, ", n_chars, n_words, p_lines); printf("partial lines = %d\n", p_lines); return 0; }

6.3.6 实现统计单词数的算法

本节开始编写 word_count驱动的业务逻辑:统计单词数。本节实现的算法将由空格、制表符(ASCII:9)、回车符(ASCII:13)和换行符(ASCII:10)分隔的字符串算做一个单词,该算法同时考虑了有多个分隔符(空格符、制表符、回车符和换行符)的情况。下面是word_count驱动完整的代码。在代码中包含了统计单词数的函数get_word_count。 [mw_shl_code=java,true]#include #include #include #include #include #include #define DEVICE_NAME "wordcount" // 定义设备文件名 static unsigned char mem[10000]; // 保存向设备文件写入的数据 static int word_count = 0; // 单词数 #define TRUE -1 #define FALSE 0 // 判断指定字符是否为空格(包括空格符、制表符、回车符和换行符) static char is_spacewhite(char c) { if(c == ' ' || c == 9 || c == 13 || c == 10) return TRUE; else return FALSE; } // 统计单词数 static int get_word_count(const char *buf) { int n = 1; int i = 0; char c = ' '; char flag = 0; // 处理多个空格分隔的情况,0:正常情况,1:已遇到一个空格 if(*buf == '\0') return 0; // 第1个字符是空格,从0开始计数 if(is_spacewhite(*buf) == TRUE) n--; // 扫描字符串中的每一个字符 for (; (c = *(buf + i)) != '\0'; i++) { // 只由一个空格分隔单词的情况 if(flag == 1 && is_spacewhite(c) == FALSE)

统计词汇中英文对照

Absolute deviation, 绝对离差 Absolute number, 绝对数 Absolute residuals, 绝对残差 Acceleration array, 加速度立体阵 Acceleration in an arbitrary direction, 任意方向上的加速度Acceleration normal, 法向加速度 Acceleration space dimension, 加速度空间的维数Acceleration tangential, 切向加速度 Acceleration vector, 加速度向量 Acceptable hypothesis, 可接受假设 Accumulation, 累积 Accuracy, 准确度 Actual frequency, 实际频数 Adaptive estimator, 自适应估计量 Addition, 相加 Addition theorem, 加法定理 Additivity, 可加性 Adjusted rate, 调整率 Adjusted value, 校正值

Admissible error, 容许误差 Aggregation, 聚集性 Alternative hypothesis, 备择假设 Among groups, 组间 Amounts, 总量 Analysis of correlation, 相关分析 Analysis of covariance, 协方差分析 Analysis of regression, 回归分析 Analysis of time series, 时间序列分析 Analysis of variance, 方差分析 Angular transformation, 角转换 ANOVA (analysis of variance), 方差分析 ANOVA Models, 方差分析模型 Arcing, 弧/弧旋 Arcsine transformation, 反正弦变换 Area under the curve, 曲线面积 AREG , 评估从一个时间点到下一个时间点回归相关时的误差ARIMA, 季节和非季节性单变量模型的极大似然估计Arithmetic grid paper, 算术格纸 Arithmetic mean, 算术平均数 Arrhenius relation, 艾恩尼斯关系 Assessing fit, 拟合的评估

统计单词个数

统计单词个数 给出一个长度不超过200的由小写英文字母组成的字母串(约定:该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k≤40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可以包含this和is,选用this之后就不能包含t)。在给出的一个不超过6个单词的字典中,要求输出最大的单词个数。 输入: 全部输入数据放在文本文件input3.dat中,其格式如下: 第一行为一个正整数(0<n≤5)表示有n组测试数据,每组的第一行有二个正整数:(p,k),其中p表示字串的行数;k表示分为k个部分。 接下来的p行,每行均有20个字符。 再接下来有一个正整数s,表示字典中单词个数。(l≤s≤6) 接下来的s行,每行均有一个单词。 输出: 结果输出至屏幕,每行一个整数,分别对应每组测试数据的相应结果。 输入输出样例: 输入: 1 1 3 thisisabookyouareaoh 4 is a ok sab 输出://说明:(不必输出) 7 // this/isabookyoua/reaoh 题解 1. 输入当前数据组 设单词表为word,其中word[i]为第i个单词(1≤i≤s);str为字串。由于该字串以每行20个字母的方式输入,因此在逐行输入的过程中计算str: 读行数p和份数k; str←’’; for i←1 to p do begin 读第i行信息len ; str←str+len; {第i行信息计入字串} end;{for} 读单词数s; for i←1 to s do 读第i个单词word[i];

统计文本中单词的个数

江西理工大学软件学院计算机类课程实验报告 课程名称:统计文本中单词个数班级:11软件会计4班 姓名:黄健 学号:11222122 江西理工大学软件学院

一、目录 1、目录--------------------------------------------------------------2 2、实验目的--------------------------------------------------------3 3、实验要求--------------------------------------------------------3 4、实验仪器设备与材料-----------------------------------------3 5、实验原理--------------------------------------------------------4 6、实验步骤--------------------------------------------------------5 7、实验原始记录--------------------------------------------------6 8、实验数据分析计算结果--------------------------------------10 9、实验心得体会--------------------------------------------------11 10、思考题----------------------------------------------------------12

单词数量统计工具

课程设计 报告 课程名称:C++ 课程设计 班级: 学号: 姓名: 完成日期:201年月日

北方软件学院 课程设计任务书 专业名称:计算机科学与技术(软件工程方向) 课程名称:C++ 课程设计 设计题目:单词数量统计工具 起止时间:201年月日至201年月日 问题描述 通过本课题设计与实现,掌握对类、结构、菜单的设计以及文件的存储、读取等操作,培养学生综合利用C++语言进行程序设计的能力,主要是培养学生对模块化设计思想的理解,合理划分函数功能及参数设计。 基本要求 文件IO操作类,实现对文件的打开、关闭、读取等方法; 单词提取类,实现对打开的文件进行词汇的统计,即这个单词出现的次数; 统计完的单词信息包括:每个单词出现的次数;以及单词的总数量信息;最终将词汇排序写入到一个指定文件中。 实现提示 1、编程以基于字符界面的控制台应用程序来实现; 2、执行完某个功能后,重新显示该菜单,可将菜单的显示放置到循环结 构中; 3、所处理的文章格式为文本内容; 4、可以使用结构体(或MAP,可以使用标准模板库)来设计存储结构; 5、最终分析的结果写入到文件中,界面只显示提示信息。 选作内容 实现文件夹内所有文件的单词数量的统计功能。 学生姓名:学号: 指导教师:年月日

单词数量统计工具 1概要设计 1.1 需求分析 该工具要实现对文件的打开、关闭和读取操作,从指定文件中把信息读 出来并保存到指定位置,再对读出的信息进行单词分离和统计,用来实现指 定单词的查找,并输出该单词的信息;能将分离后的单词进行排序并统计每 个单词出现的次数;并将排序后的单词保存到指定文件中。 1.2 系统功能模块 系统功能模块图,如图所示: 图 1.1 系统模块图 1)显示界面:当用户使用单词数量统计工具时,将进入该功能,为下一步操作提供选项; 2) 文件IO操作:该模块实现对文件的打开,关闭,读取操作; 3) 提取单词信息:将从文件中获取的信息,进行分离,当输入想要查询的单词后,将输出该单词的信息; 4) 显示单词信息:将从文件中获取的单词进行统计,统计后输出; 5) 将获取的单词信息排序:将从文件中获取的单词按字母顺序进行排序; 6) 信息保存:将排序后的单词保存到指定的文件当中;

单词统计的程序设计报告

单词统计的程序设计报告 ------护城小兵 一、问题描述 单词统计 要求:(1)输入任意一段英文。 (2)根据(1)中各单词出现概率的高低输出前五个单词。 (3)具有输入输出界面 二、结构图 三、数据结构设计 if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') { if(ch>='A'&&ch<='Z') ch+=32; flag=0; word[i][j]=ch; j++; } else flag=1; //判断是否是一个完整单词,并将单词大小写一致 if(flag==1) { total++; word[i][j]='\0'; 单词统计 输 入一段英文 判断是否是完整的单词 循环计出重复单词及次数 输出频率最高的前五个单词

count_word[i]++; for(k=0;kmax) { maxno=k; max=count_word[k]; } if (max==0) break;//单词出现概率最高的前五个单词及此单词本身输出四、处理流程图:(下页)

开始 输入文章 完整单词 最后一个单词=第一个 最后一个单词=前一个单词 单词数加一 大写字母换小写 字母指向下一个 此单词数加一 此单词数加一 第一个=下一个单词 输出各个单词个数 输出单词个数最多前五个 退出 是 是 下一个单词 否 否

c语言 统计一个字符串中单词的个数

c语言统计一个字符串中单词的个数 这个程序可以自动清除多余的空格。 #include "stdio.h" int count_word(char *str); void main() { char str1[80]; int sum=0; puts("\n please enter a string"); gets(str1); sum=count_word(str1); printf("there are %d words in this sentence",sum); } int count_word(char *str) { int count,flag; char *p; count=0; flag=0; p=str; while(*p!='\0')/*当字符串没有到结尾的时候,重头到尾的循环*/ { if(*p==' ')/*假如字符串遇到空格,就将flag清零,同时可以过滤掉多余的空格*/ flag=0; else if(flag==0)/*当字符串不是空格时,假如flag为0,那么计算器加1,既是遇到空格后的第一个字符时*/ { flag=1;/*将flag标记回1,这样在遇到第一个字符后的字符时可以将他过滤掉,直到遇到空格时,在清零*/ count++; } p++; } return count; }

C语言编程题求教----输入一个字符统计其中的单词个数 输入一串字符统计其中的单词个数。*/各个单词间用空格隔开空格数可以是多个/* 例子: Input:Let's go to room 209 count=5 这是我做的程序: #include int main(void) { char ch; int c,m; printf("Input words:"); c=1; while((ch=getchar())!='\n'){ if(ch==' ') c++; } printf("count=%d\n",c); return 0; } 但是如果是多个空格就要多统计出单词个数来。。。请教要怎样才能使多个空格只算作一个呢?? 设置一个标志word,表示单词是否开始。如果一直是空格的话,word=0,一旦看到不是空格,并且word是0,则意味着一个新单词开始,将个数增1并将word 置为1。 #include main() { char c; int i,num=0,word=0; while((c=getchar())!='\n') if(c==' ') word=0; else if(word==0) { word=1; num++; } printf("There are %d words in the line\n",num); }

相关文档
相关文档 最新文档