printf
C++ 文字列の最初のフォーマット シーケンス (変換仕様)を見つけるための最も簡潔で効率的な方法を検索し ます (std::regex
ほとんどのコンパイラではまだ実装されていないため、使用できません)。
したがって、問題は、入力文字列から最初のprintf
形式シーケンスの開始pos
とその長さを返す最適化された関数を作成することです。n
str
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
それを行う方法(巧妙でトリッキーな方法は大歓迎です)?