printfC++ 文字列の最初のフォーマット シーケンス (変換仕様)を見つけるための最も簡潔で効率的な方法を検索し ます (std::regexほとんどのコンパイラではまだ実装されていないため、使用できません)。
したがって、問題は、入力文字列から最初のprintf形式シーケンスの開始posとその長さを返す最適化された関数を作成することです。nstr
inline void detect(const std::string& str, int& pos, int& n);
たとえば、次の場合:
%d->pos = 0そしてn = 2the answer is: %05d->pos = 15そしてn = 4the answer is: %% %4.2f haha->pos = 18そしてn = 5
それを行う方法(巧妙でトリッキーな方法は大歓迎です)?