C:1-5-4

本文介绍了一个使用C语言编写的简单程序,该程序能够统计输入文本中的行数、单词数及字符数。通过定义宏和状态变量,程序可以有效地区分单词边界,并实现统计功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<stdio.h>

#define IN 1  // 在单词内  宏定义去除"幻数

#define OUT 0  // 在单词外  宏定义提高程序可读性

/* 统计输入的行数、单词数与字符数*/

main()

{ 

  int c,state=OUT;

  int nl=0,nw=0,nc=0;

  while((c=getchar())!=EOF)

   {

      nc++;

     if(c=='/n')

      nl++;

      if(c==' '||c=='/n'||c=='/t')  

         state=OUT;  //注意符号常量的“=”“==

       else if(state==OUT)  //每遇到单词的第一个字符,它就作为

//一个新单词加以统计

         { state=IN;

            nw++;

            }  

    }

   printf("nc=%d,nw=%d,nl=%d",nc,nw,nl);

 

 

#include<stdio.h>

#define IN  1

#define OUT  0

/*print input one word per line*/

main()

{

      int c,state;

      state=OUT;

      while((c=getchar())!=EOF)

      {  

           if(c==' '||c=='/b'||c=='/N') //判断一个c是否是某单词分隔符

           {

              if(state==IN) //判断这个单词分隔符是否表示某个单词结束

                {

            putchar('/n');

            state=OUT;   

                 }        //不是表示某个单词结束,则不进行任何操作

       }

           else if(state==OUT)//c是某个单词的第一个字符

              {

         state=IN;         //此处是赋值

         putchar(c);

            }

                else  //c不是某个单词中的第一个字符但是是其他字符

             putchar(c);

       }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值