c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符的个数

 我来答
四舍五不入6
高粉答主

2020-03-16 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71371

向TA提问 私信TA
展开全部

可以参考下面的代码:

#include <stdio.h>

intmain()

{

inta,b,c,ch;

a=b=c=0;//计数器初始化为0.

while((ch=getchar())!='\n')//循环读取字符,到换行结束。

{

if(ch>='0' && ch<='9')//数字

a++;

else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母

b++;

else//其它

c++;

}

printf("%d%d%d\n",a,b,c);//输出结果。

return0;

}

扩展资料:

printf()函数函数

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:

int printf(const char *format, ...);

函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值,printf()函数的调用格式为:

printf("<格式化字符串>", <参量表>);

while语句的一般表达式为:while(表达式){循环体}。

参考资料来源:百度百科-printf()

参考资料来源:百度百科-while (循环语句及英文单词)

风若远去何人留
2017-06-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

一、问题分析:

输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。

要统计各个类的个数,就要逐个判断是哪个分类的。

由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。

二、算法设计:

1、读入字符,直到遇到换行结束。

2、对于每个字符,判断是字母还是数字,或者是其它字符。

3、对于每个字符判断后,对应类别计数器自加。

4、最终输出结果。

三、参考代码:

#include <stdio.h>
int main()
{
    int a,b,c,ch;
    a=b=c=0;//计数器初始化为0.
    while((ch=getchar())!='\n')//循环读取字符,到换行结束。
    {
        if(ch>='0' && ch<='9')//数字
            a++;
        else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母
            b++;
        else //其它
            c++;
    }
    printf("%d %d %d\n", a,b,c);//输出结果。
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友15dbac2
2013-01-09 · TA获得超过123个赞
知道答主
回答量:122
采纳率:0%
帮助的人:71.7万
展开全部
#include <stdio.h>
int main()
{
char str[101]={'\0'};
int i;
int c=0,number=0,others=0;
c=number=others=0;
gets(str);//输入一串字符
for(i=0;str[i]!='\0';i++)//判断是否结束
{
if(str[i]>='A'&&str[i]<='z')//判断是否是字母是则加1
c++;
else if(str[i]>='0'&&str[i]<='9')//判断是否为数字
number++;
else
others++;//都不是则其他字符计数
}
printf("字符个数:%d\t数字个数:%d\t其他字符个数:%d\n",c,number,others);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐力W
推荐于2017-09-09 · 超过16用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:49万
展开全部
#include <stdio.h>
int main()
{
char str[101]={'\0'};
int i;
int c,number,others;
c=number=others=0;
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='z')
c++;
else if(str[i]>='0'&&str[i]<='9')
number++;
else
others++;
}
printf("字符个数:%d,数字个数:%d,其他字符个数:%d\n",c,number,others);
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大学生文档夹
2021-02-21
知道答主
回答量:1
采纳率:0%
帮助的人:521
展开全部
#include<stdio.h>
#include<string.h>
int main() {
printf("请输入一个字符:\n");
int alp,num,oth;
alp = 0;
num = 0;
oth = 0;
char str[50];
scanf("%s", &str);
for (int i = 0; str[i] !='\0'; i++)
{
if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z') {
alp++;
}
else
{
if (str[i] >='0'&& str[i] <='9')
{
num++;
}
else {
oth++;
}
}
}
printf("alp=%d,num=%d,oth=%d\n", alp, num, oth);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式