從逗號分隔的字串中提取整數的C++程式
假設我們有一個字串,其中包含一些用逗號分隔的整數。我們需要將它們分離出來,並在不同的行中顯示每個整數。為此,我們將使用C++中的stringstream(位於sstream庫中)。這是一個基於字串的流類。我們可以使用提取運算子(<<)提取內容,使用插入運算子(>>)插入內容,以及使用str()函式設定底層字串裝置物件的內容。
因此,如果輸入類似於s = "56,9,85,256,47",則輸出將是
56 9 85 256 47
為了解決這個問題,我們將遵循以下步驟:
定義一個數組take_int(string str)
建立一個名為ss的stringstream物件
定義一個數組result
當從ss中獲取的新整數項到temp不為空時,執行以下操作:
將tmp插入到result的末尾
跳過逗號字元,方法是取出單個字元
返回result
在主方法中執行以下操作:
定義一個數組integers = take_int(s)
對於初始化i := 0,當i < integers的大小,更新(i加1),執行以下操作:
顯示integers[i]
示例
讓我們看看下面的實現,以便更好地理解:
#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
廣告