从逗号分隔的字符串中提取整数的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
广告