如何快速提取这三个数字?

G-7*_*-71 0 c++ string parsing stl

我有一个std::string包含3个数字,用空格分隔,例如:123334 33335 54544.如何快速提取这三个数字?

int r = ... /* 123334 */
int g = ... /* 33335 */
int b = ... /* 54544*/
Run Code Online (Sandbox Code Playgroud)

sth*_*sth 11

最简单的方法是使用字符串流:

std::string numbers = "123334 33335 54544";
std::istringstream parse(numbers);
int r, g, b;

parse >> r;
parse >> g;
parse >> b;

if (!parse)
   throw std::runtime_error("invalid string");
Run Code Online (Sandbox Code Playgroud)