1012 - C语言程序设计教程(第三版)课后习题6.2
时间限制:1秒
内存限制:128兆
题目描述
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
输入
一行字符
输出
统计值
样例输入
aklsjflj123 sadf918u324 asdf91u32oasdf/.’;123
样例输出
23 16 2 4
根据题目要求,分为四种情况进行计次,为了能进行空格的输入,
可以使用while与getchar结合输入,或者使用gets输入
//方案一, while与getchar结合
#include<stdio.h>
int main()
{
char ch;
int m=0, n=0, x=0, y=0;
while((ch=getchar())!='\n')
{
if ((65 <= ch&&ch <= 90) || (97 <= ch&&ch <= 122))
n++;
else if(ch>=48&&ch<=57)
x++;
else if(ch==32)
m++;
else
y++;
}
printf("%d %d %d %d",n,x,m,y);
return 0;
}
//方案二, gets输入
#include<stdio.h>
#include<string.h>
int main()
{
char s[1005];
int m=0, n=0, x=0, y=0, len;
gets(s);
len=strlen(s)-1;
for(int i=0;i<=len;i++)
{
if ((65 <= s[i]&&s[i] <= 90) || (97 <= s[i]&&s[i] <= 122))
n++;
else if(s[i]>=48&&s[i]<=57)
x++;
else if(s[i]==32)
m++;
else
y++;
}
printf("%d %d %d %d",n,x,m,y);
return 0;
}