我的代码中有一个位置,我有iter
类型的元素std::string::const_iterator
,如果*iter
是小数的开头(即表单字符串的开头) -00.01
,.60
,12319.1
,99
等)然后我想提前iter
,直到它通过十进制字符串并且我想要存储十进制字符串。
对于场景的具体设置:
for (std::string::const_iterator iter(str.begin()), offend(str.end()); iter != offend; ++iter)
{
if (iter == '(')
{
//... blah blah blah
}
else if (iter is the beginning of a decimal representation)
{
parse the decimal representation, store it in a string, advance iter to the character at the end of the decimal representation (or to offend -- whichever comes first)
}
else if (some other condition involving iter)
{
// ... blah blah blah
}
//...
}
我可以为此方案使用C++
工具吗?
答案 0 :(得分:5)
如果我理解你的问题,你可以使用std::stod将捕获的字符串转换为double。如果您只想将十进制保留为字符串格式并因此从其他字符串中提取,则可以使用string::substr进行提取。