统计一个字符串中数字字符和字母的个数分别是多少。 c++编程 5

 我来答
uewing
推荐于2018-04-26 · TA获得超过354个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:136万
展开全部
#include <string>
#include <iostream>
using namespace std ;

bool IsNumber(const char c);
bool IsLetter(const char c);

int main(int argc, char *argv[])
{
cout << "输入字符串:" << endl;
string str;
cin >> str;

const char * c_str = str.c_str();
int numberCount = 0, letterCount = 0;
for(size_t i = 0; i != str.length(); ++i)
{
if(IsNumber(c_str[i]))
{
++numberCount;
}
else if(IsLetter(c_str[i]))
{
++letterCount;
}
}

cout << "数字有:"
<< numberCount
<< "个"
<< endl
<< "字母有:"
<< letterCount
<< "个"
<< endl;
return 0;
}

bool IsNumber(const char c)
{
if(c >= 48 && c <= 57)
{
return true;
}
else
{
return false;
}
}

bool IsLetter(const char c)
{
if((c >= 65 && c <= 90) || (c >= 97 && c <= 122))
{
return true;
}
else
{
return false;
}
}
沧海雄风2009
2011-06-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2858万
展开全部
C的 我改了下 你自己看看 要是还不行 就自己改改
#include <iostream>
using namespace std;
void count(char *s, int *digit, int *letter, int *other)
{
int i;
for(i=0;s[i]!='\0';i++)
{
if(s[i]>='a'&&s[i]<='z' || s[i]>='A'&&s[i]<='Z')
(*letter)++;
else if(s[i]>'0'&&s[i]<'9')
(*digit)++;
else
(*other)++;
}
}
void main()
{
int x=0,y=0,z=0;
char ch[80];
cout<<"Enter a string:"<<endle;
gets(ch);
count(ch,&x,&y,&z);
cout<<"数字有:<<x<<"个,字母有:"<<y<<"个,其它符号有:"<<z<<"个\n"<<endle;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在路上再坚持
2011-06-13 · 超过17用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:45.2万
展开全部
//希望对楼主有个小小的帮助。。。
//0~9是48~57,A~Z是65~90,a~z是97~122
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
bool IsNum(char elem)
{
if(elem>=48&&elem<=57)
return true;
else
return false;
}
bool IsChar(char elem)
{
if((elem>=65&&elem<=90)||(elem>=97&&elem<=122))
return true;
else
return false;

}
int main()
{
int countNum,coutChar;
string strLine;
getline(cin,strLine);
countNum=count_if(strLine.begin(),strLine.end(),IsNum);
coutChar=count_if(strLine.begin(),strLine.end(),IsChar);
cout<<"countNum:"<<countNum<<endl;
cout<<"coutChar:"<<coutChar<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z3410218746
2011-06-13
知道答主
回答量:17
采纳率:0%
帮助的人:6.1万
展开全部
数字和字母的ascii码中的范围是不同的,自己查查吧,书后面可能有啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式