【发布时间】:2016-04-18 23:22:33
【问题描述】:
我有这样的字符串: '123plus43times7'
其中数字后跟字典中的单词。
我知道我可以使用>> 运算符提取整数/数字:
StringStream >> number
我可以得到号码。但是,Stream 中仍然有数字。当数字的长度未知时如何删除数字,或者我应该找出数字的长度然后使用 str.substr() 创建一个新的 String Stream ? 任何其他使用 C++ STL String 和 SStream 的更好方法将不胜感激。
【问题讨论】:
-
将整个字符串读入 std::string 然后遍历字符以将其分成连续数字块和字母块似乎要简单得多。将块分开后,您可以通过
std::atoi()将数字序列转换为整数。 -
@DanMašek 是正确的。一旦你得到一个号码,你抓住一个
string和一个>>到一个string只会在空白处停止。它会抓住你的字母、数字和其他一切阻碍它的东西。
标签: c++ string stringstream