统计一段文本中的英文字母、数字、空格和其他字符个数
河北省中考-九年级历史教案
统计一段文本中的英文字母、数字、空格和其他字符个数
问题
从键盘读入一段文本,统计其中的英文字母、数字、空格和除此之外的其他字符个
数。
分析 由于输入字符的个数不确定,需构建条件循环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=getchar())!=EOF
n
Char++;
Y
c是字符?
nNumber++;
Y
N
c是数字?
N
nBlank++;
Y
c是空格?
N
nOther++;
输出nChar,nNumber,
nBlank,nOther
结束
实现 程序代码如下:
#include
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'))
else
{
nChar++;
if((c>='0')&&(c<='9'))
nNum++;
版权所有:东北大学计算中心
}
}
else
{
if(c==' ')
nBlank++;
nOther++;
else
}
printf(
}
运行结果
输入 #define PI 3.14^Z
输出 Char=8 Num=3
Blank=2 Other=2
版权所有:东北大学计算中心