ในส่วนนี้ เราจะมาดูวิธีการ 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