统计字母数字等个数
Description
输入一串字符,统计这串字符里的字母个数,数字个数,空格字数以及其他字符(最多不超过100个字符)
Input
多组测试数据,每行一组
Output
每组输出一行,分别是字母个数,数字个数,空格字数以及其他字符个数
Sample Input
I am a student in class 1.
I think I can!
Sample Output
18 1 6 1
10 0 3 1
HINT
char str[100];//定义字符型数组
while(gets(str)!=NULL)//多组数据
{
//输入代码
for(i=0;str[i]!=’\0’;i++)//gets函数自动在str后面添加’\0’作为结束标志
{
//输入代码
}
//字符常量的表示,
'a’表示字符a;
'0’表示字符0;
//字符的赋值
str[i]=‘a’;//表示将字符a赋值给str[i]
str[i]=‘0’;//表示将字符0赋值给str[i]
}
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
char str[101];//定义字符型数组
while(gets(str)!=NULL)//多组数据
{
//输入代码
int i;
int a[4];
a[0]=0;//字母
a[1]=0;//数字
a[2]=0;//空格
a[3]=0;//其他
for(i=0;str[i]!='\0';i++)//gets函数自动在str后面添加'\0'作为结束标志
{
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z'){
a[0]+=1;
}
else if(str[i]>='0'&&str[i]<='9'){
a[1]+=1;
}
else if(str[i]==' '){
a[2]+=1;
}
else{
a[3]+=1;
}
}
//输出代码
printf("charaters: %d\n",a[0]);
printf("blanks: %d\n",a[2]);
printf("digitals: %d\n",a[1]);
printf("others: %d\n",a[3]);
}
return 0;
}