5.1输入一行字符,分别统计出其中的英文字母、数字、空格和其它字符的个数。

5.1输入一行字符,分别统计出其中的英文字母、数字、空格和其它字符的个数。

#include <stdio.h>
main(){
int time,t,i,letter,number,blank,other;
char c,s[80];
printf("\n请输入程序运行的次数:");
scanf("%d",&time);
getchar();
for(t=1;t<=time;t++){
printf("\n请输入一行字符(不超过80个):");
/*请勿更改以上内容*/
/* 请在下面空白处添加语句 */

/*请勿更改以下内容*/
printf("\n其中:\n英文字母有%d个\n数字有%d个\n空格%d个\n其它字符有%d个",
letter,number,blank,other);
}
}

一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。
三、参考代码:

#include <stdio.h>int main(){ int a,b,c,d,ch; a=b=c=d=0;//计数器初始化为0. while((ch=getchar())!='\n')//循环读取字符,到换行结束。 { if(ch>='0' && ch<='9')//数字 a++; else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))//字母 b++; else if(ch==' ')//空格 c++; else //其它 d++; } printf("%d %d %d %d\n", a,b,c,d);//输出结果。 return 0;}
温馨提示:内容为网友见解,仅供参考
无其他回答

5.1输入一行字符,分别统计出其中的英文字母、数字、空格和其它字符的个...
1、读入字符,直到遇到换行结束。2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。3、对于每个字符判断后,对应类别计数器自加。4、最终输出结果。三、参考代码:include <stdio.h>int main(){ int a,b,c,d,ch; a=b=c=d=0;\/\/计数器初始化为0. while((ch=getchar...

输入一行字符,分别统计出其中的英文字母,空格,数字和其它字符的个...
printf("字母有%d个,数字有%d个,空格有%d个,其他有%d个",letters,digits,spaces,others);return 0;}

输入一行字符,分别统计其中英文字母、空格、数字和其它字符个数。
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析:利用while语句,条件为输入的字符不为'\\n'.2.程序源代码:include "stdio.h"main(){char c;int letters=0,space=0,digit=0,others=0;printf("please input some characters\\n");while((c=getchar())!='...

输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.
printf("字母=%d,空格=%d,数字=%d,其他字符=%d\\n",char_num,kongge_num,int_num,other_num);return 0;}

输入一行字符,分别统计处其中英文字母、空格、数字和其它字符的个数
int letterCount = 0;\/\/英文字母的个数 int spaceCount = 0;\/\/空格的个数 int digitalCount = 0;\/\/数字的个数 int otherCount = 0;\/\/其他字符的个数 int a;while( (a=getchar()) != '\\n'){ if( (a>='A' && a<='Z') || (a>='a' && a<='z'))\/\/如果是想分别统计...

输入一行字符,分别统计处其中英文字母、空格、数字和其它字符的个数
int y=0,k=0,s=0,q=0;char c;clrscr();while((c=getchar())!='\\n'){ if(c>='a'&&c<='z'||c>='A'&&c<='Z')y++;else if(c==32)\/*空格的ASCII码*\/ k++;else if(c>=48&&c<=57)\/*48是0的ASCII码,57是9的ASCII码*\/ s++;else q++;} printf("字母数:%d\\n...

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数...
String charVar;\/\/ 该变量用来接收输入的字符 System.out.print("请输入任意字符:"); Scanner sc = new Scanner(System.in); int yingwen = 0; int kongge = 0; int shuzi = 0; int qita = 0; charVar = sc.next(); \/\/ 取输入的第一个字符 int i = 0; while (i < charVar....

输入一行字符,分别统计出其中英文字母、空格、数字、其它字符的个数!利...
可以使用while循环,其中的循环条件,先定义好相关的变量,并赋好初值0,再用一个赋值语句,然后判断它不等于回车符的时候就进行循环。最后进行输出就可以了。while((c=getchar())!='\\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z')zm++;else if(c>='0'&&c<='9')sz++;else if(c=...

输入一行字符,分别统计其中英文字母,空格,数字和其它字符的个数(...
String input = "please 123 input 456 characters";\/\/将字符串变量转化为字符数组 char[] charArray = input.toCharArray();for(i=0;i<charArray.length;i++){ \/\/ASIIC码 if(charArray[i]<='z'&&charArray[i]>='a' || charArray[i]<='Z'&&charArray[i]>='A')countLetter++;else...

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
当输入第一个字符的时候,程序已经开始判断了 输入以后 程序判断结束 变量自加完毕 输入第二个的时候 重复上面的程序操作 当遇到换行的时候 循环结束 当输入一行字符的时候 getchar()会每个字符每个字符的进行获取 知道获取到换行符的时候循环才结束 如果还有什么疑问 可以加我百度hi pengxuewanp ...

相似回答