赞
踩
声明:如有侵权,请联系删除。本篇源头是我的一个朋友@Abieai的博客。
状态机初始化状态设置为OUT状态,当识别为字母时就会进入IN状态,中间如果遇到分隔符的话,就会再次变为OUT状态,通过计算状态变换的次数,来计算单词的数量。也就是所有字符=字母+分隔符。根据状态机的OUT和IN状态变换来判断一个文件中的字符数量。
- #include <stdio.h>
-
- #define OUT 0 //设置OUT状态
- #define IN 1 //设置IN状态
-
- #define INIT OUT //初始化状态
-
-
- int count_word(char *filename){ //文件名
-
- int status=INIT;//初始化状态
- int word=0;//单词量初始数
-
- FILE *fp = fopen(filename,"r");//可读权限
- if(fp == NULL) return -1;
-
- char c;
- while((c=fgetc(fp))!=EOF){
- if((c<65||c>90)&&(c<97||c>122)){//非字母的
- status=OUT;
- }else if(OUT==status) {
- status=IN;
- word++;
- }
- }
- return word;
- }
-
- int main(int argc,char *argv[]){
- if(argc<2)return -1;
- printf(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。