C语言编程! 编写程序,计算输入的数字、字母和其他字符的个数。
2个回答
展开全部
在ascII表中键盘可输入字符是连续的,不包括空格是从33到126,所以可以定义一个128的数组,做个简单hash,输入的字符作hash
key。实现如下:
#include
<stdio.h>
int
main()
{
char
a[1024]
=
{0};
/*接收输入的字符,由于gets不检查长度,所以弄大点*/
int
hash_tbl[128]
=
{0};/*hash
表*/
int
i;
printf("Please
input
string:\
");
gets(a);/*从标准输入读字符*/
for(i=0;
a[i]!='\\0';
i++)
{
hash_tbl[(int)a[i]]++;/*计算输入字符的个数*/
}
/*打印非零字符的个数*/
for(i=33;
i<126;
i++)
{
if
(hash_tbl[i]>0)
{
printf("%c
num
is:
%d\
",
i,
hash_tbl[i]);
}
}
return
0;
}
key。实现如下:
#include
<stdio.h>
int
main()
{
char
a[1024]
=
{0};
/*接收输入的字符,由于gets不检查长度,所以弄大点*/
int
hash_tbl[128]
=
{0};/*hash
表*/
int
i;
printf("Please
input
string:\
");
gets(a);/*从标准输入读字符*/
for(i=0;
a[i]!='\\0';
i++)
{
hash_tbl[(int)a[i]]++;/*计算输入字符的个数*/
}
/*打印非零字符的个数*/
for(i=33;
i<126;
i++)
{
if
(hash_tbl[i]>0)
{
printf("%c
num
is:
%d\
",
i,
hash_tbl[i]);
}
}
return
0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询