0

printfC++ 文字列の最初のフォーマット シーケンス (変換仕様)を見つけるための最も簡潔で効率的な方法を検索し ます (std::regexほとんどのコンパイラではまだ実装されていないため、使用できません)。

したがって、問題は、入力文字列から最初のprintf形式シーケンスの開始posとその長さを返す最適化された関数を作成することです。nstr

inline void detect(const std::string& str, int& pos, int& n);

たとえば、次の場合:

  • %d -> pos = 0そしてn = 2
  • the answer is: %05d -> pos = 15そしてn = 4
  • the answer is: %% %4.2f haha -> pos = 18そしてn = 5

それを行う方法(巧妙でトリッキーな方法は大歓迎です)?

4

1 に答える 1