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

โปรแกรม C++ แยกจำนวนเต็มจากสตริงคั่นด้วยคอมมา


สมมติว่ามีสตริงที่มีจำนวนเต็มคั่นด้วยคอมมา ต้องแยกออกมาแสดงแต่ละจำนวนในบรรทัดต่างกัน ใช้ stringstream (sstream) ใน C++

เช่น s = "56,9,85,256,47" ผลลัพธ์: 56 9 85 256 47

ขั้นตอนการแก้ปัญหา

  • ฟังก์ชัน take_int(str):
    • สร้าง stringstream ss(str)
    • วนลูปอ่าน int tmp จาก ss push_back เข้า result
    • ข้ามคอมมาด้วย ss >> ch
  • ใน main: เรียก take_int แล้ววนพิมพ์ทุกค่า

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

#include <iostream> #include <sstream> #include <vector> using namespace std; vector<int> take_int(string str) {    stringstream ss(str);    vector<int> result;    char ch;    int tmp;    while(ss >> tmp) {       result.push_back(tmp);       ss >> ch;     }    return result; } int main(){    string s = "56,9,85,256,47";    vector<int> integers = take_int(s);    for(int i = 0; i < integers.size(); i++) cout << integers[i] << "\n"; }

อินพุต

56,9,85,256,47

เอาต์พุต

56 9 85 256 47