一、需求分析:
1、统计代码的行数、字符数、单词数等。
2、代码要在文件中输入,支持txt、exe、cpp等格式的文件。
3、可以统计多个文件,文件名称由用户输入。
4、扩展功能为统计注释行数,输出各单词出现的频率,输出26个英文字母出现次数。
二、数据结构:
struct word { char data[15]; int num; }; struct word vocabulary[200];
定义单词的结构体,用来存放各个单词,以及单词出现的次数。
三、功能介绍及代码说明:
1、读文件
void read(char filename[]) { FILE *fp; char ch, a[15]; int i = 0, j = 0; count = 1; size3 = 0; size = 0; fp = fopen(filename, "r"); if (fp == NULL) { printf("the file not found!"); exit(-1); } ch = fgetc(fp); size++; if (ch == '/') { ch = fgetc(fp); size++; if (ch == '/') { size3++; ch = fgetc(fp); size++; } } for (; ch != EOF;) { if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { LetNum(ch); a[i] = ch; i++; } else { if (ch == '/') { ch = fgetc(fp); if (ch == '/') { size3++; ch = fgetc(fp); size++; continue; } } if (ch == ' ') { count++; } if (i != 0) { a[i] = '