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 类型里面为纯数字的主要内容,如果未能解决你的问题,请参考以下文章