Problem Description
字母:A, B, ..., Z、a, b, ..., z组成
数字:0, 1, ..., 9
空格:" "(不包括引号)
剩下的可打印字符全为其他字符。
Input
每组数据为一行(长度不超过100000)。
数据至文件结束(EOF)为止。
Output
包括四个整数a b c d,分别代表字母、数字、空格和其他字符的个数。
Example Input
A0 ,
Example Output
1 1 1 1
在这里给大家分享些函数:
#include<ctype.h>
isalnum() 如果参数为字母数字,则返回ture
isalpha() 如果参数为字母,则返回ture
isupper() 如果参数为大写字母,则返回ture
islower() 如果参数是小写字母,则返回ture
isdigit() 如果参数为数字(0-9),则返回ture
tolower() 如果参数为大写字母,即转化为小写字母,否则返回原值
toupper() 如果参数为小写字母,即转化为大写字母,否则返回原值
isgraph() 如果参数为空格之外的打印字符,则返回ture
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i,len;
int a[4]={0};
char str[100001];
while(gets(str))
{
memset(a,0,sizeof(a));
len=strlen(str);
for(i=0;i<len;i++)
{
if(isalpha(str[i]))
{
a[0]++;
}
else if(isdigit(str[i]))
{
a[1]++;
}
else if(str[i]==' ')
{
a[2]++;
}
else if(isgraph(str[i]))
{
a[3]++;
}
}
for(i=0;i<4;i++)
{
if(i!=3)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
}
}
638

被折叠的 条评论
为什么被折叠?



