1

私はこのような文字列を持っています

10z45
9999i4a

基本的にint-char-int-optionalchar

この関数プロトタイプをやりたい

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

唯一のことは、これらの値を抽出するために文字列を反復処理する最良の方法がわからないことです。正規表現ライブラリを使用したくないのですが、簡単に実行できるようです。

4

2 に答える 2

3

文字列ストリームを使用します。

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

最終的な文字がない場合は、の値はoptional変更されないため、事前に0に設定することをお勧めします。

于 2012-10-12T00:52:21.923 に答える
1

を使用std::istringstreamして、int、char、intを読み取り、次のcharを試してください。

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

これが100%あなたが望むものかどうかはわかりませんが、私はこのようにします。

于 2012-10-12T00:54:00.523 に答える