C++ 输入一行字符,分别统计出其中英文字母个数~~

拜托各位,写简单点,最好标上注释,谢谢!C++输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数... 拜托各位,写简单点,最好标上注释,谢谢!
C++
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-05-08 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117851

向TA提问 私信TA
展开全部

#include <stdio.h>

int main()

{

char c;

int letters=0,space=0,digit=0,other=0;

printf("请输入一行字符:");

while ((c=getchar())!='\n')

{

if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z')

{

letters++;

}

else if (c == ' ')

{

space++;

}

else if (c >= '0'&&c <= '9')

{

digit++;

}

else

{

other++;

}

}

printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",letters,space,digit,other);

return 0;

}

扩展资料

在 C 语言中,字符串实际上是使用 null 字符 '\0' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

依据数组初始化规则,可以把上面的语句写成以下语句:

char greeting[] = "Hello";

zhtt0
推荐于2017-09-13 · TA获得超过134个赞
知道答主
回答量:49
采纳率:0%
帮助的人:56.8万
展开全部
#include<stdio.h>
main()
{
int letter=0,number=0,blank=0,other=0;\\分别用来统计字母,数字,空格和其它字符的个数
char c; \\用来读取字符
while ((c=getchar())!='\n') \\结束条件,当读入的是回车,用c每次读取一个字符进行比较
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z') \\判断,介于a和z之间或A和Z之间的为字母
letter++;
else
{
if(c>='0'&&c<='9') \\0到9之间的为数字
number++;
else
{
if(c==' ') \\判断是否为空格
blank++;
else
other++; \\其它情况
}
}
}
printf ("There are %d letters,%d numbers,%d blanks and %d other character.\n",letter,number,blank,other);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友44d30f2db
2009-03-18 · 超过34用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:73.5万
展开全部
# include<iostream>
# include<stdlib.h>
#include<string>
//#include<sstream.h>
//#include<fstream>
using namespace std ;

main()
{
int Scnt[26],Bcnt[26],m_space;
int Acnt[128];

char temp,sub;
int i,len,lenbak;
string str;
cout<<"###############################################################"<<endl;
cout<<"# #"<<endl;
cout<<"# 欢迎使用字符统计!本例子可以统计ASCII中可以显示的任意字符数 #"<<endl;
cout<<"# 请输入一串字符,输入结束后请按两次回车键!谢谢! #"<<endl;
cout<<"# #"<<endl;
cout<<"###############################################################"<<endl;
getline(cin,str);
cout<<str<<endl;
len=str.length();
m_space=0;
for(i=0;i<26;i++)
{
Scnt[i]=0;
Bcnt[i]=0;
}
for(i=0;i<128;i++)
{
Acnt[i]=0;
}
for(i=0;i<=str.length();i++)
{
strcpy(&temp,str.substr(i,1).c_str());
for(sub='a';sub<='z';sub++)
{
if(temp==sub)
{
Scnt[sub-0x61]++;
}
}
for(sub='A';sub<='Z';sub++)
{
if(temp==sub)
{
Bcnt[sub-0x41]++;
}
}
if(temp==' ')
{
m_space++;
}
for(sub='!';sub<='~';sub++)
{
if(temp==sub)
{
Acnt[sub]++;
}

}
}
cout<<"小写字母统计:\n";
len=0;
lenbak=1;
for(i=0;i<26;i++)
{
if(Scnt[i]!=0)
{
cout<<char(i+0x61)<<" : "<<Scnt[i]<<" 个\t";
len++;
}

if(len%5==0)
{
if(lenbak!=len)
{
cout<<endl;
lenbak=len;
}
}

}
if(len==0)
{
cout<<"无小写字母!"<<endl<<endl;
}
len=0;
lenbak=1;
cout<<"\n大写字母统计:\n";
for(i=0;i<26;i++)
{
if(Bcnt[i]!=0)
{
cout<<char(i+0x41)<<" : "<<Bcnt[i]<<" 个\t";
len++;
}

if(len%5==0)
{
if(lenbak!=len)
{
cout<<endl;
lenbak=len;
}
}
}

if(len==0)
{
cout<<"无大写字母!"<<endl;
}
cout<<endl<<"空格统计: ";
if(m_space==0)
{
cout<<"无空格!";
}
else
{
cout<<m_space<<"个";
}
cout<<endl<<"所有ASCII 码统计:\n";
len=0;
lenbak=1;
for(i=33;i<128;i++)
{
if(Acnt[i]!=0)
{
cout<<"'"<<char(i)<<"':"<<Acnt[i]<<" 个 ";
}
if(len%5==0)
{
if(lenbak!=len)
{
cout<<endl;
lenbak=len;
}
}
}
cout<<endl;
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赵玄静扬荫
2019-11-29 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:29%
帮助的人:574万
展开全部
#include<stdio.h>
main()
{
int
letter=0,number=0,blank=0,other=0;\\分别用来统计字母,数字,空格和其它字符的个数
char
c;
\\用来读取字符
while
((c=getchar())!='\n')
\\结束条件,当读入的是回车,用c每次读取一个字符进行比较
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
\\判断,介于a和z之间或A和Z之间的为字母
letter++;
else
{
if(c>='0'&&c<='9')
\\0到9之间的为数字
number++;
else
{
if(c=='
')
\\判断是否为空格
blank++;
else
other++;
\\其它情况
}
}
}
printf
("There
are
%d
letters,%d
numbers,%d
blanks
and
%d
other
character.\n",letter,number,blank,other);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
延鑫虎清华
2020-01-27 · TA获得超过3543个赞
知道大有可为答主
回答量:2989
采纳率:31%
帮助的人:464万
展开全部
#include<stdio.h>
main()
{
intletter=0,number=0,blank=0,other=0;\\分别用来统计字母,数字,空格和其它字符的个数
charc;\\用来读取字符
while((c=getchar())!='\n')\\结束条件,当读入的是回车,用c每次读取一个字符进行比较
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')\\判断,介于a和z之间或A和Z之间的为字母
letter++;
else
{
if(c>='0'&&c<='9')\\0到9之间的为数字
number++;
else
{
if(c=='')\\判断是否为空格
blank++;
else
other++;\\其它情况
}
}
}
printf("Thereare%dletters,%dnumbers,%dblanksand%dothercharacter.\n",letter,number,blank,other);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式