以前写过了Python如何判断输入字符串是否为数字,可是Python是弱类型语言,相比之下C++这种强类型语言断定难度更大。html
例如,我要把不断输入的字符串中数字都转为double类型,别的都保存为字符串。那么我接收输入的数据类型只能为string。git
C++和Python同样提供了isdigit()的方法,可是isdigit()只能判断一个字符,且只能一位一位判断,也就是说只能判断一个字符是否是0~9之间的整型数。连负数都没法判断。函数
好在C++11在string类中,提供了stoi, stod, stof, stol, stoll等函数分别是把字符串转化为int, double, float, long, long long型。code
那么,思路就和Python中同样了,利用异常捕捉。htm
bool isdouble(string x) { double y; try{ y = stod(x); } catch (const std::exception&){ return false; } return true; }
同理,原理是stod()这个函数,没法将非数字的变量转换为double。blog