Ở đâ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