本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
字符型问题通常是我的头疼的痛点,一直也没有搞懂,现在咱们来看一下如何去理解这道题,首先题目要求是输入字符,然后统计各个字符类型的数量。
代码如下:
#include<stdio.h>
int main(){
int letter,blank,digit,other; //首先给每个类型字母的类型名称
letter= blank=digit=other=0; //起始值取为0
//在定义数字的时候我们通常都是使用scanf("%d",&n),那么定义字符的时候就要使用char ch,
char ch;
for(int i=0;i<10;i++){
scanf("%c",&ch); //在输入字符的时候我们通常都是scanf("%d",&n),那么字符的话就是用scanf("%c",&ch),字符就是用%c
//ch = getchar() //在输入字符的时候,我们还可以用ch = getchar()
if(ch<='9' && ch>='0') //下面的算法就是一个很普通的条件语句,if-else
digit++;
else if(ch==' '||ch=='\n')
blank++;
else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
letter++;
else
other++;
}
printf("letter = %d,blank=%d,digit = %d,other = %d\n",letter,blank,digit,other);
return 0;
}