用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序

用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序。... 用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序。 展开
 我来答
龍不悔
2013-11-28 · TA获得超过1137个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:494万
展开全部
#include <stdio.h>
int main()
{
     char c[50];
     int i,el=0,sp=0,nu=0,other=0; 
     gets(c);//输入字符串 
     
     for(i=0; i<strlen(c); i++)//strlen返回字符串长度 
     {
             if((c[i]>='A' && c[i]<='Z')||(c[i]>='a' && c[i]<='z'))
                  el++;
             else if(c[i]>='0'&&c[i]<='9')
                 nu++;
             else if(c[i]==' ')
                 sp++;
             else 
                  other++;
     }
     printf("英文字母个数=%d\n数 字 个 数 =%d\n空 格 字 数 =%d\n其他字符个数=%d\n",el,nu,sp,other);
     return 0;
}

已经测试过了,测试结果如下,有问题可以继续追问。

更多追问追答
追问
我是初学者,看不懂,有没有更简单的。
追答
#include <stdio.h>
int main()
{
     char c[50];//输入字符串 
     int i,el=0,sp=0,nu=0,other=0; 
     gets(c);//输入字符串 
     
     for(i=0; i<strlen(c); i++)//strlen返回字符串长度 
     {
             if((c[i]>='A' && c[i]<='Z')||(c[i]>='a' && c[i]<='z'))//判断字符在a~z和A~Z之间为英文字符 
                  el++;//英文字符数目 
             else if(c[i]>='0'&&c[i]<='9')//判断字符在0~9之间为数字字符 
                 nu++;//数字数目 
             else if(c[i]==' ')//判断是否为空格 
                 sp++;//空格数目 
             else 
                  other++;//其他字符数目 
     }
     printf("英文字母个数=%d\n数 字 个 数 =%d\n空 格 字 数 =%d\n其他字符个数=%d\n",el,nu,sp,other);
     return 0;
}

这个不知道可能看懂,加了一些注释

匿名用户
2013-11-28
展开全部
/*C语言编写一段题目为“输出一行字符,分别统计出其中的
英文字母,空格,数字和其他字符的个数”的程序*/
#include<stdio.h>
int main(void)
{
char ch,Eng,Space,Num,Other;
for(ch=Eng=Space=Num=Other=0;scanf("%c",&ch)&&ch!='\n';)
if((ch|32)>='a'&&(ch|32)<='z')
Eng++;
else if(ch==' ')
Space++;
else if(ch>='0'&&ch<='9')
Num++;
else
Other++;
printf("英文字母: %d\n空格    : %d\n数字    : %d\n其它字符: %d\n",Eng,Space,Num,Other);
return 0;
}
更多追问追答
追问
那个for 后面怎么一大串,看不懂,ch|32是什么意思
追答
ch|32是按位或,如果ch是大写字母ch|32变成对应的小写,如果是小写不变
for(初始条件;判断条件;步进方法){循环体}
ch=Eng=Space=Num=Other=0是初始条件,把计数单位全赋值0
scanf("%c",&ch)读取一个字符,如果读取不出错会返回1
ch!='\n'是输入的字符ch不是回车
scanf("%c",&ch)&&ch!='\n'合成一个逻辑表达式,就是当读取字符不出错并且ch不是回车时条件成立,
后面的步进条件因为有前面的scanf是读取操做,不再需要新的条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式