统计一段文本中的英文字母、数字、空格和其他字符个数
问题 从键盘读入一段文本,统计其中的英文字母、数字、空格和除此之外的其他字符个
数。
分析 由于输入字符的个数不确定,需构建条件循环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())!=EOFnChar++;Yc是字符?nNumber++;YN c是数字?N nBlank++;Yc是空格?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
版权所有:东北大学计算中心
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库统计一段文本中的英文字母、数字、空格和其他字符个数在线全文阅读。
相关推荐: