题目描述
输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
输入格式
一行字符,长度不超过200
输出格式
统计值
样例输入
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
样例输出
23 16 2 4
题目解析
1.因为需要输入一行字符,所以定义一个字符数组
char ch[200] = { 0 };
2.需要统计每种字符的个数,定义变量统计个数
int english = 0;
int number = 0;
int space = 0;
int other = 0;
3.循环输入
while (1)
{
scanf("%c", &ch[i]);
}
4.遇到回车键需要立即跳出循环(重要)
if (ch[i] == '\n')
break;
5.统计各个类型的个数
if (ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= 'A' && ch[i] <= 'Z')
english++;
else if (ch[i] >= '0' && ch[i] <= '9')
number++;
else if (ch[i] == ' ')
space++;
else
other++;
6.循环结束后打印统计结果
printf("%d %d %d %d\n", english, number, space, other);
源代码
#include <stdio.h>
int main(void)
{
char ch[200] = { 0 };
int english = 0;
int number = 0;
int space = 0;
int other = 0;
int i = 0;
while (1)
{
scanf("%c", &ch[i]);
if (ch[i] == '\n')
break;
if (ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= 'A' && ch[i] <= 'Z')
english++;
else if (ch[i] >= '0' && ch[i] <= '9')
number++;
else if (ch[i] == ' ')
space++;
else
other++;
i++;
}
printf("%d %d %d %d\n", english, number, space, other);
return 0;
}