C++如何判断string 类型里面为纯数字

定义一个string类num。然后输入字符,如果全是数字就录入。如果是其他就提示输入错误请重新输入... 定义一个string类num。然后输入字符,如果全是数字就录入。如果是其他就提示输入错误 请重新输入 展开
 我来答
xjc_cd
2010-07-01 · TA获得超过413个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:433万
展开全部
BOOL IsDigit2(string str)
{
for(int i=0;i<str.size();i++)
{
if ((str.at(i)>'9') || (str.at(i)<'0') )
{
return FALSE;
}
}
return TRUE;
}

int main()
{
string snumb;
cout << "请输入数据:";
cin >> snumb;

bool bret = IsDigit2(snumb) ;
while( !IsDigit2(snumb) )
{
cout<<"请重新输入数据:";
cin >> snumb;
}

system("pause");
return 0;
}
dahakawang
2010-07-01 · TA获得超过548个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:0
展开全部
比较字符串每一个ascii码,在'0'和'9'区间上的话就是数字,具体如下:
=======================
#include <string>
#include <iostream>
#define isDigital(x) (((x)>='0') && ((x) <= '9'))

using std::string;

int main(void)
{
string a;
a = "1234";
bool flag = true;
for(string::iterator itr = a.begin(); itr != a.end(); itr++)
flag &= isDigital(*itr);

if(flag)
std::cout<<"is digital."<<std::endl;
else
std::cout<<"is not digital."<<std::endl;

return 0;
}
=======
isDigtal宏是用来判断一个字符是不是数字的(通过比较ascii码)
主程序中通过一个循环,测试每一个字符是不是数字,当且仅当所有分量全为数字时,该循环是flag返回真,最后根据其值判断即是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7860c3e
2010-07-01 · TA获得超过241个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:117万
展开全部
不用ASCll码了,直接拿字符与'0'和'9'比较,例如: a>'0'&& a<'9',a为一个字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
orange_i
2010-07-01 · TA获得超过527个赞
知道小有建树答主
回答量:1130
采纳率:0%
帮助的人:665万
展开全部
根据ASCII字符表,我是忘记了,每一个字符都是有值的,你看看0-9的值是多少,输入的每一个字符检查是不是在这个范围,在就是数字,不在就不是数字然后报错。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式