//一个统计单词的小程序#include<stdio.h>#include<ctype.h>#include<stdbool.h>#defineSTOP'|'intmyspace(char ar);intmain(){char c;//读入字符 char prev;//读入的前一个字符 long n_chars=0L;//字符数 int n_lines=0;//行数 int n_words=0;//词数 int p_lines=0;//不完整的行数
bool inword =false;//如果c在单词中,inword等于true printf("Enter text to be analyzed (| to terminate ): \n");
prev='\n';while((c=getchar())!=STOP){
n_chars++;if(c=='\n') n_lines++;if(!isspace(c)&&!inword)//isspace是ctype.h头文件函数:判断字符是否为空格 {//我用myspace函数实现了一下
inword=true;
n_words++;}if(isspace(c)&&inword)
inword=false;
prev=c;}if(prev!='\n') p_lines=1;printf("characters = %ld ,words=%d ,lines=%d ",n_chars,n_words,n_lines);printf("partial line = %d\n",p_lines);return0;}intmyspace(char ar){return(ar==' ')?1:0;}