用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序
用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序。...
用C语言编写一段题目为“输出一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数”的程序。
展开
展开全部
#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是读取操做,不再需要新的条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询