一、
给出一串字符,要求统计出里面的字母、数字、空格以及其他字符的个数。
字母:A, B, ..., Z、a, b, ..., z组成
数字:0, 1, ..., 9
空格:" "(不包括引号)
剩下的可打印字符全为其他字符。
输入格式:测试数据有多组。
每组数据为一行(长度不超过100000)。
数据至文件结束(EOF)为止。
输出格式:
每组输入对应一行输出。
包括四个整数a b c d,分别代表字母、数字、空格和其他字符的个数。
输入样例:
A0 ,
输出样例:
在这里给出相应的输出。例如:
1 1 1 1
#include<>
#include<>
int main()
{
int n,i;
char a[100000];
int b,c,d,e;
while(gets(a)!=NULL)
{
n=strlen(a);
b=0;c=0;d=0;e=0;
for(i=0;i<n;i++)
{
if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
b++;
else if(a[i]>=48&&a[i]<=57)//数字的ascii码值是48~57
c++;
else if(a[i]==' ')
d++;
else
e++;
}
printf("%d %d %d %d\n",b,c,d,e);
}
return 0;
}
二、
输入英文句子,输出该句子中除了空格外出现次数最多的字符及其出现的次数。
输入格式:
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
输出格式:
逐行输出每个句子中出现次数最多的字符及其出现的次数(如果有多个字符的次数相同,只输出ASCII码最小的字符)。
输入样例:
I am a student
a good programming problem
ABCD abcd ABCD abcd
输出样例:
在这里给出相应的输出。例如:
a 2
o 4
A 2
#include<>
#include<>
int main()
{
int n,i,t,max;
char a[101];
int b[130];
while(gets(a)!=NULL)
{
int b[130]={0};
for(i=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
b[a[i]]++;//a[i]转换
}
max=b[0];t=0;
for(i=1;i<130;i++)
{
if(max<b[i])
{
max=b[i];
t=i;
}
}
printf("%c %d\n",t,max);//t转换
}
return 0;
}