Cho chuỗi chứa các số nguyên phân cách bằng dấu phẩy. Tách chúng ra và in mỗi số trên một dòng. Sử dụng stringstream (thư viện sstream) - luồng dựa trên chuỗi. Dùng toán tử >> để trích xuất, << để chèn, str() để thiết lập nội dung.
Ví dụ: s="56,9,85,256,47" → 56 9 85 256 47
Giải thuật
- Hàm take_int(string str):
- stringstream ss(str)
- vector
result - While ss >> tmp: result.push_back(tmp); ss >> ch (bỏ qua dấu phẩy)
- Trả về result
- Main: integers = take_int(s), in từng phần tử
Ví dụ minh họa
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
vector<int> take_int(string str) {
stringstream ss(str);
vector<int> result;
char ch;
int tmp;
while(ss >> tmp) {
result.push_back(tmp);
ss >> ch;
}
return result;
}
int main(){
string s = "56,9,85,256,47";
vector<int> integers = take_int(s);
for(int i = 0; i < integers.size(); i++)
cout << integers[i] << "\n";
}
Đầu vào
56,9,85,256,47
Đầu ra
56 9 85 256 47