C语言中统计文件中的单词个数,这里默认单词之间都是以空格分隔的,而且没有判断单词的正误。原理比较简单,当读取到的空字符之前是个非空字符时,说明读取了一个完整单词。代码如下:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int countChar(char input[]){
int p_input = 0;
int count = 0;
bool word = false;
char ch;
while(p_input < strlen(input)){
ch = input[p_input];
if(ch==' '){
if(word){ //读取到空字符,而之前是非空字符,则说明读完了一个单词
count++;
word = false;
}
}else{ //读取到第一个非空字符,说明是单词的开始
word = true;
}
p_input++;
}
return count;
}
int main()
{
char input[256];
int p_input = 0;
int count = 0;
FILE *fp = fopen("text.txt","r");
fgets(input,256,fp);
fclose(fp);
count = countChar(input);
printf("Your words count:\n%d\n",count);
return 0;
}
说明:在项目中新建一个text.txt的文件。