求大神解释一下如何用C++来统计所输入段落的单词数,字母数以及行数?

2025-05-11 14:03:30
推荐回答(1个)
回答1:

你好,是要这样的效果吗,满意请采纳


#include
#include
#include
#define STOP '|'
int main(void)
{
    char c;
    char prev; 
    int n_chars=0;   //字符数
    int n_lines=0;     //行数
    int n_words=0;     //单词数
    int p_lines=0;     //不完整的行数
    bool inword = false;   //如果c在一个单词中,则inword等于true

    printf("请输入字符串( | 结束 ):\n");
    prev='\n';      //用于识别完整的行

    while(scanf("%c",&c),c!=STOP)
    {
        n_chars++;      //单词数量 + 1,含换行 

        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("字符数 = %d  \n单词数: = %d  \n总行数 = %d\n",n_chars,n_words,n_lines);
    printf("不完行 = %d\n",p_lines);
    return 0;
}