Tách string trong C++ | Laptrinhcanban.com

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.

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:

#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:

Hello
new
world!
Tom
and
Jerry

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:

#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:

Tom
you
me
Good
Morning
MyLove

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

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.