从逗号分隔的字符串中提取整数的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+浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告