私はこのような文字列を持っています
10z45
9999i4a
基本的にint-char-int-optionalchar
この関数プロトタイプをやりたい
void process(std::string input, int &first, char &c, int &last, bool &optional)
唯一のことは、これらの値を抽出するために文字列を反復処理する最良の方法がわからないことです。正規表現ライブラリを使用したくないのですが、簡単に実行できるようです。
私はこのような文字列を持っています
10z45
9999i4a
基本的にint-char-int-optionalchar
この関数プロトタイプをやりたい
void process(std::string input, int &first, char &c, int &last, bool &optional)
唯一のことは、これらの値を抽出するために文字列を反復処理する最良の方法がわからないことです。正規表現ライブラリを使用したくないのですが、簡単に実行できるようです。
文字列ストリームを使用します。
#include <sstream>
...
std::istringstream iss(input);
iss >> first >> c >> last >> optional;
最終的な文字がない場合は、の値はoptional変更されないため、事前に0に設定することをお勧めします。
を使用std::istringstreamして、int、char、intを読み取り、次のcharを試してください。
std::istringstream is(input);
is >> first >> c >> last;
char c2;
optional = (is >> c2);
これが100%あなたが望むものかどうかはわかりませんが、私はこのようにします。