C语言统计文件字符数 单词数 行数

  前天用java写了这个功能,今天用C语言实现了一下,有点恼火的就是判断每行字符串最后一个字符了,如果为空格的话就要特别处理一下,还要注意,记得每行时都要将

isLastBlank重置为1,而且刚刚开始时候他的值是为0.
github地址:https://github.com/ICanV/wc

看代码:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void wcexe(char *filename){
	FILE *fp;
	char buffer[1000];
	char c;
	int bufferlen;
	int isLastBlank = 0; // 上个字符是否是空格(1表示是  0表示不是)
	int charCount=0;
	int wordCount=0;
	int lineCount=0;
	int i;

	if((fp=fopen(filename,"rb"))==NULL){
		printf("文件不能打开\n");
		exit(0);
	}
	while(fgets(buffer,1000,fp)!=NULL){
		bufferlen=strlen(buffer);
		for(i=0;i<bufferlen;i++){
			c=buffer[i];
			if(c==' ' || c=='\t'){
				if(isLastBlank==0){
					wordCount++;
				}
				isLastBlank=1;
			}else if(c!='\n'&&c!='\r'){
				charCount++;
				isLastBlank=0;
			}

		}
		if(isLastBlank==0)
			wordCount++;
		isLastBlank=1;
		lineCount++;
	}
	fclose(fp);
	printf("行数:%d\n",lineCount);
	printf("字符数:%d\n",charCount);
	printf("单词数:%d\n",wordCount);

	
}
void main(){
	char filename[]="C://Users//Administrator//Desktop//123.txt";
	wcexe(filename);

  

  

原文地址:https://www.cnblogs.com/liupeixuan/p/7551016.html