У меня есть строка для токенизации. Его форма HHmmssff, где H, m, s, f — цифры.
Предполагается, что он должен быть разделен на четыре двузначных числа, но мне нужно, чтобы он также принимал сокращенные формы, например sff, поэтому он интерпретирует его как 00000sff. Я хотел использовать offset_separator boost::tokenizer, но, похоже, он работает только с положительными смещениями, и я хотел бы, чтобы он работал как бы в обратном порядке.
Хорошо, одна идея состоит в том, чтобы дополнить строку нулями слева, но, возможно, сообщество придумает что-то супер умное. ;)
Изменить. Только что вступили в силу дополнительные требования.
Основная потребность в более разумном решении заключалась в том, чтобы обрабатывать все случаи, такие как f, ssff, mssff и т. д., но также принимать более полное обозначение времени, например HH:mm:ss:ff с его сокращенными формами, например. s:ff или даже s: (предполагается, что это интерпретируется как s:00).
В случае, когда строка заканчивается на :, я, очевидно, также могу дополнить ее двумя нулями, затем удалить все разделители, оставив только цифры, и проанализировать полученную строку с духом.
Но кажется, что было бы немного проще, если бы был способ заставить токенизатор смещения возвращаться от конца строки (смещения -2, -4, -6, -8) и лексически приводить числа к ints.