1、程序的要求:对用户指定的英文文本文件(包括标准输入),将英文单词按照字母顺序输出到用户指定的文本文件中(包括标准输出),并且在各单词后面显示单词的出现次数。
2、模块设计:
主要分为:1.从输入流获取单词部分 2.管理单词的部分 3.主程序部分:统一管理以上两部分
3、代码
第1部分:get_word.c 主要是利用isalnum()函数判断单词的开始与结束
/*get_word.c*/
#include<stdio.h> #include<stdlib.h> #include<ctype.h> /* 这个函数从输入文件fp获取单词,参数buf指向获取的单词,返回值返回单词长度或是EOF提示 */ int get_word(char *buf,int buf_size,FILE *fp) { int ch,len; len=0; while((ch=getc(fp))!=EOF&&isalnum(ch)) //isalnum(int c)函数在c是数字或字母时返回ture { buf[len]=ch; //buf[len] is a syntax sugar of *(buf+len) len++; if(len>=buf_size) { printf("error:word too long!"); //单词长度大于buf_size时发出警报并退出程序 exit(1); } } buf[len]='