1. #include<stdio.h> 
  2. #include<ctype.h> 
  3. #define STOP '|' 
  4.  
  5. int main(void){ 
  6.     char c; 
  7.     char pre; 
  8.     int n_all = 0; 
  9.     int n_words = 0; 
  10.     int n_lines = 0; 
  11.     int n_nlines = 0; 
  12.     bool inword = false;//判断字符是否在一个单词里面 
  13.  
  14.     printf("Enter a dialog '|' to stop\n"); 
  15.     while((c = getchar()) != STOP){ 
  16.         n_all++; 
  17.         if(c == '\n'){ 
  18.             n_lines++; 
  19.         } 
  20.         if(!isspace(c) && !inword){
    //如果一个字符不是空白,而且不在一个单词里面,那么就说明要开启一个新单词了! 
  21.             n_words++; 
  22.             inword = true
  23.         } 
  24.         if(isspace(c) && inword){
    //如果一个字符是空白,而且在一个单词里面,那么这个单词就要结束了! 
  25.             inword = false
  26.         } 
  27.         pre = c;//用来记录前一个字符 
  28.     } 
  29.     if(pre != '\n'){
    //如果前一个字符不是“回车”,那么说明存在一个不完整行! 
  30.         n_nlines++; 
  31.     } 
  32.     printf("n_all is %d\n",n_all); 
  33.     printf("n_words is %d\n",n_words); 
  34.     printf("n_lines is %d\n",n_lines); 
  35.     printf("n_nlines is %d\n",n_nlines); 
  36.  
  37.     return 0;