C语言入门 发表于 2014-5-31 09:28:19

这个程序表示不懂啊

//统计字符、单词和行
#include <stdio.h>
#include <ctype.h>          //为isspace()提供函数原型
#include <stdbool.h>      //为bool、true和false提供定义
#define STOP '|'

int main(void)
{
        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)
                {
                        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 lines = %d\n", p_lines);
        getchar();
        getchar();
        return 0;
}

苹果沃珂 发表于 2014-5-31 09:28:20

本帖最后由 苹果沃珂 于 2014-5-31 14:52 编辑

while((c = getchar()) != STOP)
      {
                n_chars++;         //统计字符
                if(c == '\n')            
                        n_lines++;   // 遇到换行符'\n',行数就+1
                if(!isspace(c) && !inword)
                {                        // 如果输入的字符c不是空白字符,且不在前面的单词中,说明字符c是新一个单词的首字母
                        inword = true; //开始一个新单词
                        n_words++; //统计单词
                }
                // 如果输入字符是一个空白符,说明前面的单词已经输入完整
                // inword用于区分连续输入多个空白符
                if(isspace(c) && inword)
                        inword = false; //到达单词的尾部
               prev = c;       //保存字符值
      }
页: [1]
查看完整版本: 这个程序表示不懂啊