Trong chương trình này, chúng ta sẽ thấy cách phân tích (parse) chuỗi phân tách bằng dấu phẩy trong C++. Chúng ta sẽ đặt một chuỗi nơi một số văn bản có mặt, và chúng được phân tách bằng dấu phẩy. Sau khi thực thi chương trình này, nó sẽ tách những chuỗi đó vào một đối tượng kiểu vector.
Để tách chúng, chúng ta sử dụng hàm getline(). Cú pháp cơ bản của hàm này như sau:
getline (input_stream, string, delim)
Hàm này được dùng để đọc một chuỗi hoặc một dòng từ luồng đầu vào.
Đầu vào: Một số chuỗi "ABC,XYZ,Hello,World,25,C++" Đầu ra: Các chuỗi tách biệt ABC XYZ Hello World 25 C++
Thuật toán
Bước 1: Tạo luồng từ chuỗi cho trước
Bước 2: Khi luồng chưa kết thúc
Bước 2.1: Lấy mục trước dấu phẩy
Bước 2.2: Thêm mục vào vector
Bước 3: Trả về vectorMã ví dụ
#include<iostream>
#include<vector>
#include<sstream>
using namespace std;
main() {
string my_str = "ABC,XYZ,Hello,World,25,C++";
vector<string> result;
stringstream s_stream(my_str); //tạo luồng chuỗi từ chuỗi
while(s_stream.good()) {
string substr;
getline(s_stream, substr, ','); //lấy chuỗi đầu tiên phân tách bằng dấu phẩy
result.push_back(substr);
}
for(int i = 0; i < result.size(); i++) { //in tất cả chuỗi đã tách
cout << result.at(i) << endl;
}
}Kết quả
ABC XYZ Hello World 25 C++