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

      

  • 相关阅读:
    Do you want a timeout?
    [整]常用的几种VS编程插件
    [转]Windows的窗口刷新机制
    [整][转]Invoke和BeginInvoke的使用
    [整]C#获得程序路径
    [转]Visual Studio 2010 单元测试目录
    飞秋的实现原理
    面向对象的七大原则
    [转]玩转Google开源C++单元测试框架Google Test系列
    [转]C#中的Monitor类
  • 原文地址:https://www.cnblogs.com/Gozz/p/7764370.html
Copyright © 2020-2023  润新知