Ony*_*gun 1 c++ string parsing std
我想迭代这样的字符串:
string mystr = "13n4w14n3w2s";
Run Code Online (Sandbox Code Playgroud)
我想要提取的是一个地图,如果可能的话,从该字符串,但保持它的顺序.
13 n
4 w
14 n
3 w
2 s
Run Code Online (Sandbox Code Playgroud)
我将在另一个时间点迭代.现在我已经看到了从像"13a"这样的简单字符串中提取值的示例
string str = "13a";
int num;
char dir;
str >> num >> dir;
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到与顶部较长的字符串类似的东西?
您可以std::istringstream像这样使用和循环读取流:
std::string mystr = "13n4w14n3w2s";
std::istringstream iss{mystr};
std::vector<std::pair<int, char>> mappings; // To store the int-char pairs.
int num;
char dir;
while (iss >> num >> dir) {
std::cout << num << std::endl; // Next int from the stream.
std::cout << dir << std::endl; // Next char from the stream.
mappings.emplace_back(num, dir); // Store the pair.
}
Run Code Online (Sandbox Code Playgroud)