输入一行字符,以回车键结束输入 分别统计其中出现的大写英文字母 小写英文字母 数字字符 空格和其他字符

等5类字符出现的次数 例如 若输入:I am 20 years old! 则5类字符出现的次数分别是1、10、2、4、1
下面是我写出的程序 不知道哪里错了
#include <iostream.h>
void main()
{
char ch;
int num=0,d=0,x=0,space=0,other=0;
while((ch=cin.get())!='\n')
if(ch>='A'&&ch<='Z')
d++;
else if (ch>='a'&&ch<='z')
x++;
else if(ch>='0'&&ch<='9')
num++;
else if(ch=' ')
space++;
else other++;
cout<<"d="<<d<<endl;
cout<<"x="<<x<<endl;
cout<<"num="<<num<<endl;
cout<<"space="<<space<<endl;
cout<<"other="<<other<<endl;
}
这个过程运行完之后得如下
d=1 x=10 num=2 space=5 other=0 里面的空格字符数 和其他字符数都不对不知道为什么
哪位能帮忙解答一下啊??很急很急 万分感谢

#include <stdio.h>
int main()
{
  int letter=0,space=0,digit=0,others=0;
  char c;
  while((c=getchar())!='\n'){
   if(c==' ')
      space++;
   else if(c>='1'&&c<='9')
       digit++;
   else if((c>='a'&&c<='z')||c>='A'&&c<='Z')
       letter++;
   else others++;
  }
  printf("The number of letters is:%d\n",letter);
  printf("The number of spaces is:%d\n",space);
  printf("The number of digits is:%d\n",digit);
  printf("The number of other words is:%d\n",others);
return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-29
#include <stdio.h>
int main()
{
int letter=0,space=0,digit=0,others=0;
char c;
while((c=getchar())!='\n'){
if(c==' ')
space++;
else if(c>='1'&&c<='9')
digit++;
else if((c>='a'&&c<='z')||c>='A'&&c<='Z')
letter++;
else others++;
}
printf("The number of letters is:%d\n",letter);
printf("The number of spaces is:%d\n",space);
printf("The number of digits is:%d\n",digit);
printf("The number of other words is:%d\n",others);
return 0;
}追问

不好意思还是有几个问题不懂
1。数字的话不包括0吗?如果是1-9的话那如果有0怎么办啊?
2. 题里的是大小写字母各自的字符数是多少 如果用||的话应该只能输出字母的字符 不能区分大小写了 是吗?
3.我上面那个程序里面也是把other放在最后 可是为什么的出来就是0呢?还有我算出来的空格数比正确的多一个 为什么
麻烦你了谢谢

本回答被网友采纳

...分别统计其中出现的大写英文字母 小写英文字母 数字字符 空格和其 ...
space); printf("The number of digits is:%d\\n",digit)

C语言:输入一行字符,分别统计出其中的大写英文字母、小写英文字母、数字...
printf("其中大写字母%d个,小写字母%d个,数字%d个,其他字符%d个\\n",dx,xx,shuzi,qita);}

输入一串字符,以回车键结束,统计出其中的英文字母(包括大写及小写...
if(a[i]>='A'&&a[i]<='Z')这个就是表示A——Z的大写字母,其他的类似。

输入一行字符,分别统计其中的英文大写字母,小写字母,数字字符和其他字符...
printf("小写字母个数:%d\\n",x);printf("大写字母个数:%d\\n",d);printf("数字个数:%d\\n",s);printf("其他字符个数:%d\\n",q);}

c语言怎样才能输入一行字符,以回车作为结束标志,分别统计出大写字母,小 ...
因为字符串中有空格所以不能使用scanf函数来接收键盘输入的字符串,因为scanf遇到空格和回车结束输入,所以需要使用gets来接收键盘输出的字符串,接着依次判断并累加,最后输出即可。 参考代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <stdio.h> int main() ...

...回车键结束输入)统计出其英文大写字母、英文小写字母、空格、数字和...
main(){ int i=0;int m=0;int n=0;char c;clrscr();while((c=getchar())!='\\n'){ if (65<=c&&c<=90) i++;else if(97<=c&&c<=122) m++;else if(48<=c&&c<=57) n++;} printf("da xie zi mu you %d ge,xiao xie zi mu you %d ge,shu zi you %d ge!",i,...

...输入一串字符串,已回车结束,分别统计输出其中数字、字母和其他字符的...
='\\n') \/\/循环输入字符,直到输入回车{if(c>='a' && c<='z' || c>='A' && c<='Z')letters++;else if(c==' ')space++;else if(c>='0' && c<='9')digit++; else others++;}printf("统计:字母=%d 空格=%d 数字=%d 其它=%d\\n",letters,space,digit,others);...

输入一行字符,分别统计处其中大写英文字母、小写英文字母、数字、空格和...
main( ){ int a=0,b=0,d=0,e=0,f=0;char c;while((c=getchar( ))!='\\n'){ if (c>='A'&&c<='Z') a++;else if(c>='a'&&c<='z') b++;else if(c>='0'&&c<='9') d++;else if(c==' ') e++;else f++;} printf("%d\\n",a);printf("%d\\n",b);prin...

输入一行文字,分别统计其中英文大写字母,小写字母,空格,数字,其他字符...
include<ctype.h> int main(){int i,a[5];char s[200];gets(s);for(i=0;s[i];i++)if(isupper(s[i]))a[0]++;else if(islower(s[i]))a[1]++;else if(s[i]==' ')a[2]++;else if(isdigit(s[i]))a[3]++;else a[4]++;printf("英文大写字母有%d个\\n",a[0]);p...

c++,输入一行字符,分别统计其中的英文大写字母,小写字母,数字字符和其 ...
因为一个字符占一个字节,所以字节数=字符数。创建一个数组来存放每个字符对应的ASCII码,然后根据ASCII码来判断是什么字符。大写英文字符从65-90,小写英文字符从97-122,数字字符为48-57,剩下的自然是其他字符了。设置一个循环判断语句,就行了,自己写一下代码,写不出来再问我,我再贴给你。

相似回答