[英]std::string to a uint64_t
如何将std::string
转换为uint64_t
? 如果字符串不包含uint64_t
的纯表示,我还希望函数抛出。 例如,这些转换应抛出:
"NO: 9889"
"9889L"
"9889U"
"1e+22"
或用另一种方式表明它们不是纯粹的代表。 我正在使用C ++ 98和boost(包括boost::regex
)。
使用boost::lexical_cast
。 如果数字无法解析或溢出,它将抛出bad_lexical_cast
。
如果您曾切换到C ++ 11,那么标准中的新功能应该更快。
甲for
与isdigit()
后跟一个strtoll()
始终是一个选项。
也许不是单行,但是在stringutils.cpp中写一个很好的函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.