关于C++统计字符的问题

xingenge 2014-12-09 06:11:34
我是一名大一物联网学生,正在学习C++,可以说是才刚入门。
我习惯自己做课后题目。今天看到一题,再翻翻之前教的知识点,发现不会做,特此求助。
题目是:从键盘输入若干个英文字母,并统计各字母出现的次数(不区分大小写)


#include <iostream.h>
#include <stdio.h>
#define MAX 50
void main()
{
char str[MAX];
int num[5]={0,0,0,0,0}; //分别为大写,小写,空格,数字及其他的数量
int i=0;
cout<<"请输入字符串:"<<endl;
gets(str); //读入字符串
for(i=0;;i++)
{
if(str[i]>=65&&str[i]<=90) //判断是否为小写
{
num[0]++;
continue;
}
if(str[i]>=97&&str[i]<=122) //判断是否为大写
{
num[1]++;
continue;
}x
if(str[i]==32) //判断是否为空格
{
num[2]++;
continue;
}
if(str[i]>=49&&str[i]<=57) //判断是否为数字
{
num[3]++;
continue;
}
if(str[i]=='\0') break; //判断字符串是否结束
num[4]++;
}
cout<<"大写字母的数量:"<<num[0]<<endl;
cout<<"小写字母的数量:"<<num[1]<<endl;
cout<<"空格的数量:"<<num[2]<<endl;
cout<<"数字的数量:"<<num[3]<<endl;
cout<<"其他的数量:"<<num[4]<<endl;

}


以上是我从网上抄的一个关于输入50个字符 判断大小写数字空格的 代码。

想问一下,形如“str[i]>=97&&str[i]<=122” 是什么意思?

这个代码和我所遇到的问题的答案类似吗?
怎么样才能做到检测a、b、c等这些字母?

请各位前辈指教!
...全文
204 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sky丶Memory 2014-12-15
  • 打赏
  • 举报
回复
代码可以更简单,没必要处理的这么复杂。。。。可以不用讨论的
zacharyLiu 2014-12-15
  • 打赏
  • 举报
回复

str[i]>=97&&str[i]<=122//等价于下面这行代码
str[i]>='a' &&str[i]<= 'z'  //其中字符a, z在ASCII中对应97 跟122
Evankaka 版主 2014-12-14
  • 打赏
  • 举报
回复
str[i]>=97&&str[i]<=122等价于,str[i]>=‘a’&&str[i]<='z'
Evankaka 版主 2014-12-14
  • 打赏
  • 举报
回复
str[i]>=97&&str[i]<=122等价于,str[i]>=‘a’&&str[i]<='b'
kmsch 2014-12-14
  • 打赏
  • 举报
回复
str[i]>=97&&str[i]<=122” 这个是字符对应的ascii表的值
alex_my 2014-12-12
  • 打赏
  • 举报
回复
看下ASCII就可以知道了。
忘世麒麟 2014-12-12
  • 打赏
  • 举报
回复
想问一下,形如“str[i]>=97&&str[i]<=122” 是什么意思?字符对应的十进制数字其中97对应a,122对应z,你可以百度一下ASCII码。 这个代码和我所遇到的问题的答案类似吗?是的,类似 怎么样才能做到检测a、b、c等这些字母?:比如if(str[i] == 'a'){......}
FightForProgrammer 2014-12-09
  • 打赏
  • 举报
回复
a,b,c。。。这些字符都是char类型的。 哎。。你自己看书吧。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧