Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แยกสตริงคั่นด้วยคอมมาใน C++


ในโปรแกรมนี้เราจะดูวิธีแยก (parse) สตริงที่คั่นด้วยคอมมาใน C++ เราจะใส่สตริงที่มีข้อความบางส่วน คั่นด้วยคอมมา หลังรันโปรแกรม จะแยกสตริงเหล่านั้นออกเป็น vector object

เพื่อแยกพวกมัน เราใช้ฟังก์ชัน getline() ไวยากรณ์พื้นฐานของฟังก์ชันนี้คือ:

getline (input_stream, string, delim)

ฟังก์ชันนี้ใช้สำหรับอ่านสตริงหรือบรรทัดจาก input stream

Input: สตริง "ABC,XYZ,Hello,World,25,C++"
Output: สตริงที่แยกแล้ว ABC XYZ Hello World 25 C++

อัลกอริทึม

ขั้นตอน 1: สร้าง stream จากสตริงที่กำหนด
ขั้นตอน 2: ในขณะที่ stream ยังไม่จบ
    ขั้นตอน 2.1: เอาส่วนก่อนคอมมา
    ขั้นตอน 2.2: เพิ่มส่วนนั้นเข้า vector
ขั้นตอน 3: คืนค่า vector

ตัวอย่างโค้ด

#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); // สร้าง string stream จากสตริง
    
    while(s_stream.good()) {
        string substr;
        getline(s_stream, substr, ','); // ได้สตริงแรกที่คั่นด้วยคอมมา
        result.push_back(substr);
    }
    
    for(int i = 0; i<result.size(); i++) {
        // พิมพ์สตริงที่แยกแล้วทั้งหมด
        cout << result.at(i) << endl;
    }
}

ผลลัพธ์

ABC
XYZ
Hello
World
25
C++