從逗號分隔的字串中提取整數的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

更新於:2021年10月7日

3K+瀏覽量

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告