从std :: string C ++中提取任意数据值

时间:2012-10-12 00:46:00

标签: c++ string alphanumeric

我有这样的字符串

10z45
9999i4a

基本上int-char-int-optionalchar

我想做这个函数原型

void process(std::string input, int &first, char &c, int &last, bool &optional)

唯一的问题是我不确定迭代字符串以提取这些值的最佳方法。宁愿不使用正则表达式库,似乎可以简单地完成?

2 个答案:

答案 0 :(得分:3)

使用字符串流:

#include <sstream>
...
std::istringstream iss(input);
iss >> first >> c >> last >> optional;

如果没有最终字符,则不会触及optional的值,因此我建议事先将其设置为0.

答案 1 :(得分:1)

使用std::istringstream,读取int,char,int,然后尝试下一个char:

std::istringstream is(input);
is >> first >> c >> last;
char c2;
optional = (is >> c2);

我不确定这是100%你想要的 - 但我会这样做。

相关问题