输入一行字符,分别统计出其中英文字母,数字,空格和其他字符的个数
#include<stdio.h>
int main(){
int t1=0,t2=0,t3=0,t4=0;
//t1,t2,t3,t4分别表示字母、数字、空格、其他字符的个数
char k;
while((k=getchar())!='\n'){
if(k>='A'&&k<='Z' || k>='a'&&k<='z') t1++;
else if(k>='0'&&k<='9') t2++;
else if(k==' ') t3++;
else t4++;
}
printf("%d %d %d %d",t1,t2,t3,t4);
return 0;
}
觉得有用的话采纳一下哈
解决思路如下:
1、定义4个分别用于存放英文字母、数字、空格和其他字符个数的变量,并初始化其值。
2、定义一个用于存放读取输入字符的字符变量
3、用一个循环持续读取字符并判断读取到的字符是否是一行的结尾
4、在循环体内,依次判断字母的个数,数字的个数,空格的字数和其他字符的个数
提示:字母、数字、空格可以根据类似于'A'等字符变量来判读,也可通过ASCII码来判断。
5、循环结束后,打印字母、数字、空格、其他字符的个数。
代码:
#include <stdio.h>
int main(void){
int letters = 0 , numbers= 0,space = 0,others=0;
char ch;
while((ch=getchar())!='\n'){
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
letters++;
}else if(ch>='0'&&ch<='9'){
numbers++;
}else if(ch==' '){
space++;
}else{
others++;
}
}
printf("letters:%d,numbers:%d,space:%d,others:%d.\n",letters,numbers,space,others);
return 0;
}