ในส่วนนี้ เราจะมาดูวิธีการ tokenize string ใน C++ ใน C เราสามารถใช้ฟังก์ชัน strtok() สำหรับอาร์เรย์อักขระได้ ที่นี่เรามีคลาสสตริง ตอนนี้เราจะมาดูวิธีการตัดสตริงโดยใช้ตัวคั่นจากสตริงนั้น
ในการใช้คุณลักษณะ C++ เราต้องแปลงสตริงเป็นสตรีมสตริง จากนั้นใช้ฟังก์ชัน getline() เราก็สามารถทำงานนั้นได้ ฟังก์ชัน getline() ใช้สตรีมสตริง สตริงอื่นเพื่อส่งเอาต์พุต และตัวคั่นเพื่อหยุดการสแกนสตรีม
เรามาดูตัวอย่างต่อไปนี้เพื่อทำความเข้าใจว่าฟังก์ชันทำงานอย่างไร
โค้ดตัวอย่าง
#include <iostream> #include <vector> #include <sstream> using namespace std; int main() { string my_string = "Hello,World,India,Earth,London"; stringstream ss(my_string); //convert my_string into string stream vector<string> tokens; string temp_str; while(getline(ss, temp_str, ',')){ //use comma as delim for cutting string tokens.push_back(temp_str); } for(int i = 0; i < tokens.size(); i++) { cout << tokens[i] << endl; } }
ผลลัพธ์
Hello World India Earth London