4单词计数和单行显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4单词计数和单行显示相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>

#define out 0
#define in 1

int main()
{
    int c;
    int n_w;         //单词计数
    int state;       //输入状态,用于区分当前输入是否处于单词内

    state = out;     //初始状态为单词外
    n_w = 0;

    while ((c = getchar()) != ‘\\n‘)   //按下enter键时,终止循环,输出结果
    {
        if (c==‘ ‘ || c==‘\\t‘)        //如果当前输入的是空格或者制表符,则是在单词外
        {
            state = out;              //输入状态置为单词外,此时不进行单词计数,也不输出空格或者制表符
        }
        else if (state==out)          //走到这里说明当前输入的不是空格或者制表符,暂时认为输入的是数字或字母,同时当前的输入状态又是外部
        {                             //也就是说,当前的输入刚好是单词的第一个字符,这已经是一个新单词了
            putchar(‘\\n‘);            //所以要换行,然后显示这个字符,同时单词计数+1,输入状态更改为单词内
            putchar(c);               //当输入单词内的第二个字符时,状态已经是单词内了,所以不会再进入这个过程,而是跳转到下一个else
            state = in;
            ++n_w;
        }
        else                          //当前输入的既不是空格或制表符,输入状态也不是外部
            putchar(c);               //那就是说现在正在输入单词内的字符,不用计数,也不用换行,不用更改状态,只用显示出来即可
    }
    printf("\\n输入单词个数:%d\\n", n_w);

    return 0;
}

  技术分享

 

以上是关于4单词计数和单行显示的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript单行代码,也就是代码片段

《C程序设计语言》关于单词计数的思考

web代码片段

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

WC计数程序小结

为啥此代码片段返回意外结果?