Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Trích xuất tất cả số nguyên từ chuỗi trong C++


Ở đây chúng ta sẽ thấy cách trích xuất tất cả các số nguyên từ chuỗi trong C++. Chúng ta có thể đặt một chuỗi nơi có cả số và không phải số. Chúng ta sẽ trích xuất tất cả giá trị số từ nó.

Để giải quyết vấn đề này, chúng ta sẽ sử dụng lớp stringstream trong C++. Chúng ta sẽ cắt chuỗi từ từ (word by word) và sau đó thử chuyển đổi nó thành dữ liệu kiểu nguyên. Nếu chuyển đổi thành công, thì đó là số nguyên và in giá trị ra.

Đầu vào: Chuỗi có một số số "Hello 112 World 35 75" 
Đầu ra: 112 35 75

Thuật toán

Bước 1: Lấy một chuỗi số
Bước 2: Chia nó thành các từ khác nhau
Bước 3: Nếu một từ có thể chuyển đổi thành dữ liệu kiểu nguyên, thì in nó
Bước 4: Kết thúc

Mã ví dụ

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

void getNumberFromString(string s) { 
    stringstream str_strm; 
    str_strm << s; //chuyển chuỗi s thành stringstream 
    string temp_str; 
    int temp_int; 
    while(!str_strm.eof()) { 
        str_strm >> temp_str; //lấy từ vào temp_str lần lượt 
        if(stringstream(temp_str) >> temp_int) { //thử chuyển chuỗi sang int 
            cout << temp_int << " "; 
        } 
        temp_str = ""; //xóa chuỗi tạm 
    } 
} 

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

Kết quả

112 35 75