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

ดึงตัวเลขทั้งหมดจากสตริงใน C++


ที่นี่เราจะดูวิธีดึงตัวเลขทั้งหมดจากสตริงใน C++ เราสามารถใส่สตริงที่มีตัวเลขและตัวอักษรผสมกันได้ เราจะดึงค่าตัวเลขทั้งหมดออกมา

เพื่อแก้ปัญหานี้ เราจะใช้คลาส stringstream ใน C++ เราจะตัดสตริงทีละคำ แล้วพยายามแปลงเป็นข้อมูลประเภท integer ถ้าแปลงได้ แสดงว่ามันคือตัวเลข ให้พิมพ์ค่าออกมา

Input: สตริงมีตัวเลข "Hello 112 World 35 75"
Output: 112 35 75

อัลกอริทึม

ขั้นตอน 1: รับสตริงที่มีตัวเลข
ขั้นตอน 2: แบ่งเป็นคำต่างๆ
ขั้นตอน 3: ถ้าคำไหนแปลงเป็น integer ได้ ให้พิมพ์ค่า
ขั้นตอน 4: จบ

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

#include <iostream>
#include <sstream>
using namespace std;

void getNumberFromString(string s) {
    stringstream str_strm;
    str_strm << s; // แปลงสตริง s เป็น stringstream
    string temp_str;
    int temp_int;
    
    while(!str_strm.eof()) {
        str_strm >> temp_str; // เอาคำทีละคำใส่ temp_str
        if(stringstream(temp_str) >> temp_int) { // ลองแปลงสตริงเป็น int
            cout << temp_int << " ";
        }
        temp_str = ""; // ล้าง temp string
    }
}

main() {
    string my_str = "Hello 112 World 35 75";
    getNumberFromString(my_str);
}

ผลลัพธ์

112 35 75