c++ 怎么解析 string str= "1:2:3:4:" 成vector<int>
时间: 2024-02-23 21:59:03 浏览: 65
可以通过以下代码将字符串转化为vector<int>:
```c++
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int main() {
string str = "1:2:3:4:";
vector<int> nums;
string num_str;
stringstream ss(str);
while (getline(ss, num_str, ':')) {
if (!num_str.empty()) {
nums.push_back(stoi(num_str));
}
}
for (int num : nums) {
cout << num << " ";
}
return 0;
}
```
输出结果为:
```
1 2 3 4
```
解释说明:
- 首先定义一个字符串 `str`,并将其初始化为 "1:2:3:4:"。
- 然后定义一个空的 `vector<int>`,用于存储解析出来的整数。
- 接着定义一个 `stringstream` 对象 `ss`,将字符串 `str` 传入,这样我们就可以使用 `getline()` 函数从中提取每个数字。
- 在 `while` 循环中,每次从 `ss` 中提取出一个数字字符串 `num_str`,并判断它是否为空。如果不为空,则将其转化为整数并添加到 `nums` 中。
- 最后,使用 `for` 循环遍历 `nums`,并输出其中的每个整数。
阅读全文