如何把字符串string里的整数一个个提出来,用c++写。

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:30:52
例如“1 23 234 567 3”输出后变成5个整数1,23,234,567,3。

既然你说要用C++写,我就全用了标准模板库STL来写。所以请注意编译器的设置,在gcc和vc的编译器下都编译测试通过。而且此程序还能处理更复杂的字符串,如:" 123 abc 34 #$ 5%6 132 78 "

#include <iostream>
#include <vector>
#include <string>

using namespace std;

// str 为待转换的字符串,v 为转换后的整型数据存放的容器
void convert(string &str, vector<int> &v)
{
int pos = 0; // 字符串游标位置
int ch; // 字符串游标位置的值
int value = 0; // 某一个转换后的整型值
int flag = 0;
while (true)
{
ch = str[pos++];
if (ch >= '0' && ch <= '9')
{
if (!flag) flag = 1;
value = value * 10 + (ch - '0');
}
else
{
if (flag)
{
v.push_back(value);
flag = 0;
value = 0;
}
if (ch == 0) break;