Tách String Trong C++

Hướng dẫn cách tách string trong C++. Bạn sẽ học được cách tự tạo hàm split trong C++ để tách string sau bài học này.

Tách string trong C++

Tách string trong C++ là xử lý tách các string con từ string ban đầu bằng các ký tự phân cách như tab \t, dấu cách, dấu phẩy hay ký tự xuống dòng chẳng hạn.

Do trong C++ không có sẵn hàm này, nên chúng ta phải tự tạo ra hàm split để tách string trong C++, bằng cách ứng dụng các hàm và phương thức có sẵn.

Copy
string split(string str, string delimiter){ //str: chuỗi cần tách //delimiter: ký tự phân cách size_t pos = 0; string token; while ((pos = str.find(delimiter)) != string::npos) { token = str.substr(0, pos); cout << token << endl; str.erase(0, pos + delimiter.length()); } return str;}

Tách string trong C++ bằng một ký tự phân cách

Bằng cách chỉ định đối số delimiter trong hàm split ở trên là một ký tự, ví dụ như là tab \t, dấu cách, dấu phẩy hay ký tự xuống dòng chẳng hạn, chúng ta có thể tách chuỗi string ban đầu thành các chuỗi nhỏ như sau:

Copy
#include <iostream>using namespace std;string split(string str, string delimiter){ size_t pos = 0; string token; while ((pos = str.find(delimiter)) != string::npos) { token = str.substr(0, pos); cout << token << endl; str.erase(0, pos + delimiter.length()); } return str;} int main() { //Tách string bằng ký tự trống cout << split("Hello new world!", " ") << endl; //Tách string bằng dấu tab cout << split("Tom\tand\tJerry", "\t") << endl; return 0;}

Kết quả, các ký tự được tách ra bởi ký tự phân cách như sau:

Copy
Hellonewworld!TomandJerry

Tách string trong C++ bằng một chuỗi ký tự phân cách

Bằng cách chỉ định đối số delimiter trong hàm split ở trên là một chuỗi ký tự, chúng ta có thể tách chuỗi string ban đầu thành các chuỗi nhỏ như sau:

Copy
#include <iostream>using namespace std;string split(string str, string delimiter){ size_t pos = 0; string token; while ((pos = str.find(delimiter)) != string::npos) { token = str.substr(0, pos); cout << token << endl; str.erase(0, pos + delimiter.length()); } return str;} int main() { //Tách string bằng chuỗi ký tự " and " cout << split("Tom and you and me", " and ") << endl; //Tách string bằng chuỗi ký tự "*_*" cout << split("Good*_*Morning*_*MyLove", "*_*") << endl; return 0;}

Kết quả, các ký tự được tách ra bởi chuỗi ký tự phân cách như sau:

Copy
TomyoumeGoodMorningMyLove

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tạo hàm split để tách string trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Tham khảo:https://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c

URL Link

https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/string-trong-cpp/tach-string-trong-cpp/

Từ khóa » Tách Chuỗi Trong String