c++输入一行字符,分别统计出其中英文字母,数字和其他字符的个数

当我随便输入一行如ssss只显示有3个字母或888ssss只显示2个数字3个字母这是怎么回事?voidtask05(){intl=0,n=0,o=0;charword;c... 当我随便输入一行如ssss只显示有3个字母或888ssss只显示2个数字3个字母这是怎么回事?
void task05() {
int l = 0, n = 0, o = 0;
char word;
cin.get(word);
while (word != '\n') {
cin.get(word);
if ((word >= 'a'&&word <= 'z') || (word >= 'A'&&word <= 'Z')) {
l++;
}
else if (word >= '0'&&word <= '9') {
n++;
}
else {
o++;
}
}
cout << "zimu" << l << endl << "shuzi" << n << endl << "qita" << o << endl;

}
展开
 我来答
whuzfb
2017-10-21 · TA获得超过601个赞
知道小有建树答主
回答量:376
采纳率:88%
帮助的人:312万
展开全部

问题出在while循环里的cin.get()位置不合适,换成如下即可:

#include <iostream>
using namespace std;
int main()
{
int l = 0, n = 0, o = 0;
char word;
cin.get(word);
while (word != '\n') {
if ((word >= 'a'&&word <= 'z') || (word >= 'A'&&word <= 'Z')) {
l++;
}
else if (word >= '0'&&word <= '9') {
n++;
}
else {
o++;
}
cin.get(word);
}
cout << "zimu" << l << endl << "shuzi" << n << endl << "qita" << o << endl;
}

VS2017测试通过。答题不易,正确请采纳

追问
谢谢
1024程序员
2020-03-09 · TA获得超过374个赞
知道答主
回答量:457
采纳率:0%
帮助的人:23.2万
展开全部

C语言经典例子之统计英文、字母、空格及数字个数

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邰明雨as
高粉答主

2020-03-24 · 繁杂信息太多,你要学会辨别
知道答主
回答量:13.1万
采纳率:7%
帮助的人:6478万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式