我正在寻找一种优雅的方式将std::string从类似以下内容的格式转换为另一种格式:
我已经使用
[编辑] 因此,多个空格和制表符被减少为一个空格 [/编辑]
去除外部空格很简单。但是否有一种优雅的方法可以去除内部空格,而不涉及手动迭代和比较前一个和下一个字符?也许是我错过了
std::string text = " a\t very \t ugly \t\t\t\t string ";
至:
std::string text = "a very ugly string";
我已经使用
boost :: trim(text);
修剪了外部空格。[编辑] 因此,多个空格和制表符被减少为一个空格 [/编辑]
去除外部空格很简单。但是否有一种优雅的方法可以去除内部空格,而不涉及手动迭代和比较前一个和下一个字符?也许是我错过了
boost
中的某些东西?
boost::split
和boost::join
,但在Python中编写这个的明显方法是' '.join(text.split())
,类似的方式也应该是可行的。虽然它不一定像将字节直接复制到最终位置那样高效,但它简洁明了。 - Steve Jessop