1076: 习题5-4 字符统计
时间限制: 1 Sec 内存限制: 12 MB
提交: 364 解决: 236
您该题的状态:已完成
[提交][状态][讨论版]
题目描述
输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数,分行输出该结果。
输入
一行字符,可以包含字母、数字、空格、标点等符号
输出
分行输出大小写英文字母、空格、数字和其他字符的个数。
如:
characters=字母个数
spaces=空格个数
numbers=数字个数
others=其他字符个数
样例输入
<span style="color:black">My input123 @%chars.
</span>
样例输出
<span style="color:black">characters=12
spaces=2
numbers=3
others=3
</span>
提示
C语言第四版教学实验-第五章 循环结构程序设计
程序一:
#include<stdio.h>
void main()
{
char c;
int characters=0,spaces=0,numbers=0,others=0;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
characters++;
else
{
if(c>='0'&&c<='9')
numbers++;
else
{
if(c==' ')
spaces++;
else
others++;
}
}
}
printf("characters=%d\n",characters);
printf("spaces=%d\n",spaces);
printf("numbers=%d\n",numbers);
printf("others=%d\n",others);
}
程序二:
#include<stdio.h>
# include<string.h>
int
main()
{
int
n=0,i=0,m=0,j=0,k;
char
a[100];
gets
(a);
for
(k=0;k<
strlen
(a);k++)
{
if
(a[k]==
' '
)
{n++;
}
else
if
(a[k]>=
'0'
&&a[k]<=
'9'
)
m++;
else
if
(a[k]>=
'A'
&&a[k]<=
'Z'
||a[k]>=
'a'
&&a[k]<=
'z'
)
j++;
else
i++;
}
printf
(
"characters=%d\nspaces=%d\n"
,j,n);
printf
(
"numbers=%d\nothers=%d"
,m,i);
return
0;
}