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);

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM