我正在尝试检查用户输入错误的程序。
在这种情况下,我只想要数字。 (没有字母等)
if (someStringHere.find_first_not_of("0123456789") == string::npos)
说这段代码会给我这样的实现是否正确?
根据我的知识,如果字符串只是数字,则返回true
;如果找到0-9之外的数字,则返回false
。
答案 0 :(得分:0)
您的实施对我来说很好。
以下不是一个详尽的测试用例,但它足以证明这一点,坦率地说,你的方法很明显(假设是ASCII输入)。
<tomalak> geordi << isAllNums("12345"), isAllNums("a3234e"), isAllNums("abcdef"); bool isAllNums(const std::string& str) { return str.find_first_not_of("0123456789") == string::npos; }
<geordi> true, false, false