您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言实现输入字符的统计

时间:01-03来源:作者:点击数:

问题提出:

从键盘读入一段文本,统计其中的英文字母、数字、空格和除此之外的其他字符个数。

问题分析:

由于输入字符的个数不确定,需构建条件循环while((c=getchar())!=EOF),其中EOF为符号常量,用于表示文本输入结束,在PC机上通过输入Ctrl+Z组合键来输入此字符。所需数据与算法如下。

数据要求:

问题的输入:char c;     /*获取从键盘上输入的字符*/

问题的输出:
         unsigned int nChar;   /*文本中英文字母的个数*/
         unsigned int nNum;   /*文本中数字的个数*/
         unsigned int nBlank;   /*文本中空格的个数*/
         unsigned int nOther;   /*文本中其他字符的个数*/

算法设计:

初始算法
         1. 初始化变量nChar、nNum、nBlank、nOther为零
         2. 从键盘输入文本,直到输入特殊的字符结束
         3. 对文本中每一个字符,做循环判断并计数。

算法细化
         1. unsigned int nChar=0,nNum=0,nBlank=0,nOther=0;
         2. 循环统计从键盘输入的英文字母个数,算法如下:
             while((c=getchar())!=EOF)
             {
               if((c>='a')&&(c<='z')||(c>='A')&&(c<='Z'))
               nChar++;
              ……
             }

C语言程序代码如下:

#include "stdio.h"
void main()
{
unsigned int nChar=0,nNum=0,nBlank=0,nOther=0;
char c;
while((c=getchar())!=EOF)
{
if((c>='a')&&(c<='z')||(c>='A')&&(c<='Z'))
    nChar++;
else
  {
    if((c>='0')&&(c<='9'))
     nNum++;
    else
     {
     if(c==' ')
      nBlank++;
     else
      nOther++;
     }
  }
}
printf("Char=%d\tNum=%d\tBlank=%d\tOther=%d",nChar,nNum,nBlank,nOther);
}

运行结果:

输入  #define PI 3.14^Z

输出  Char=8 Num=3 Blank=2 Other=2

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门