问题描述
先给出个数,换行给字符。
统计字符,包括数字,英文,其他字符
输入
10
Reold12-3
输出
letter=5,digit=3,other=2
为教材原题,代码如下:
#include "stdio.h"
int main(){
int letter, digit, other, n, i;
char ch;
letter=digit=other=0;
scanf("%d",&n);
//getchar(); //读取且舍弃缓冲区的换行符
for(i=1; i<=n; i++){
ch=getchar();
if((ch>='a' && ch<='z')||(ch>='A'&&ch<='Z'))
letter++;
else if (ch>='0'&&ch<='9')
digit++;
else
other++;
}
printf("letter=%d,digit=%d,other=%d",letter,digit,other);
}
对于注释部分:教材从顺序上解释了作用,即“读入舍弃多余的换行符”。实际情况因开发环境智能程度而异。保险起见要加上。