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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++如何判断string 类型里面为纯数字相关的知识,希望对你有一定的参考价值。

定义一个string类num。然后输入字符,如果全是数字就录入。如果是其他就提示输入错误 请重新输入

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;
参考技术A 比较字符串每一个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返回真,最后根据其值判断即是
参考技术B 不用ASCll码了,直接拿字符与'0'和'9'比较,例如: a>'0'&& a<'9',a为一个字符。 参考技术C 根据ASCII字符表,我是忘记了,每一个字符都是有值的,你看看0-9的值是多少,输入的每一个字符检查是不是在这个范围,在就是数字,不在就不是数字然后报错。

C++判断字符串中是不是含有某个子字符串

既然是用C++,这个问题当然要用C++标准库来解决咯,C++标准库有一个string类,把需要查找判断的字符串赋值给一个string对象,然后调用这个string对象的find成员函数,查找子字符串是否存在这个string对象中,如果这个string对象没有包含那个子字符串,find成员函数就会返回一个string::npos值,如果找到了子字符串,则会返回一个string::size_type类型的子字符串的起始下标位置。 参考技术A KMP算法判断即可,具体的KMP实现可以百度

以上是关于C++如何判断string 类型里面为纯数字的主要内容,如果未能解决你的问题,请参考以下文章

java中判断字符串是不是为纯数字

awk 如何判断一个字符串是不是为纯数字?

java 正则匹配字符是不是为纯数字

Java中怎样判断一个字符串是不是是数字

c++中如何获取函数名,和获取到一个基类指针后,如何判断它里面保存的是那个子类类型对象?

C#中如何判断输入的文本为纯数字