Обрезка внутренних пробелов в std :: string

Я ищу элегантный способ преобразовать std :: string из чего-то вроде:

std::string text = "   a\t   very  \t   ugly   \t\t\t\t   string       ";

To:

std::string text = "a very ugly string";

Я уже обрезал внешние пробелы с помощью boost :: trim (text);

[править] Таким образом, несколько пробелов и вкладок сокращаются до одного пробела. [/ edit]

Удаление внешнего пробела тривиально. Но есть ли элегантный способ удаления внутреннего пробела, который не требует ручного перебора и сравнения предыдущих и следующих символов? Возможно, я что-то пропустил в boost ?

5
задан nerozehl 19 February 2012 в 16:30
поделиться