project2—wordcount程序

wordcount程序统计文本文件的字数、单词数和行数

各个参数的意义

基本功能列表

wc.exe -c file.c 对字符数的统计

wc.exe -w file.c 对单词数的统计

wc.exe -l file.c: 对行数的统计

 

 文件处理模块:

  用来打开文件,代码复用。

  

void OpenFile(FILE *fp)
{
if((fp=fopen("file.c","r))==NULL)
{
printf("file reaed failure");

}

}

 

字符统计模块:

  用fgect取出文件中的字符,判断字符是否为EOF(判断是否到文件尾),若未到尾则字符数+1,再取字符,如此循环。

void CharCount()
{
FILE *fp;
OpenFile(fp);
int c =0;
char ch;
ch = fgetc(fp); //取字符,fp自动+1
while(ch!=EOF)
{
c++;
ch = fgetc(fp);

}
printf("char is : %d\n",c);
fclose(fp);

}


单词统计模块:
单词统计使用了内外两个循环,外循环用来判断是否到了文件尾,内循环用来判断是否到了一个单词尾,每当一个内循环结束,word数+1,如此继续。

void WordCount()
{
FILE *fp;
OpenFile(fp);
int w =0;
char ch;
ch=fgetc(fp);
while(ch!=EOF)
{
if((ch>='a' && ch<='z') || (ch >='A' && <='Z') ||(ch >='0' && ch,='9'))
{
while ((ch >= 'a'&&ch <= 'z')||(ch >= 'A'&&ch <= 'Z')||(ch >= '0'&&ch <= '9')||ch == '_')
{
ch = fgetc(fp);
}
w++;
ch = fgetc(fp);
}
else
{
ch = fgetc(fp);
}
}
printf("word count is : %d\n",w);
fclose(fp);
}



行数统计模块:
外循环判断是否到文件尾,内循环判断取出字符是否为/n换行符,若是则行数+1,若不是则继续取字符。

void LineCount()
{
FILE *fp;
OpenFile(fp);
int l=1;
char ch;
ch =fgetc(fp);
while(ch!= EOF)
{
if(ch=='\n')
{
l++;
ch =fgetc(fp);
}
else
{
ch = fgetc(fp);
}
}
printf ("line count is : %d\n",l);
fclose(fp)



}

https://github.com/zqm233/wordcount

posted @ 2017-09-26 23:14  zqm233  阅读(133)  评论(0编辑  收藏  举报