C++如何判断string 类型里面为纯数字
定义一个string类num。然后输入字符,如果全是数字就录入。如果是其他就提示输入错误请重新输入...
定义一个string类num。然后输入字符,如果全是数字就录入。如果是其他就提示输入错误 请重新输入
展开
4个回答
展开全部
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;
}
{
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;
}
展开全部
比较字符串每一个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返回真,最后根据其值判断即是
=======================
#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返回真,最后根据其值判断即是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用ASCll码了,直接拿字符与'0'和'9'比较,例如: a>'0'&& a<'9',a为一个字符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据ASCII字符表,我是忘记了,每一个字符都是有值的,你看看0-9的值是多少,输入的每一个字符检查是不是在这个范围,在就是数字,不在就不是数字然后报错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询