c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符的个数
可以参考下面的代码:
#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 (循环语句及英文单词)
一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在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;
}
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);
}
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;
}
#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);
}