如何从 C++ 中的字符串对象中删除空格。
例如,如何从下面的字符串对象中删除前导和尾随空格。
//Original string: " This is a sample string "
//Desired string: "This is a sample string"
据我所知,字符串类没有提供任何删除前导和尾随空格的方法。
为了增加问题,如何扩展此格式以处理字符串单词之间的额外空格。例如,
// Original string: " This is a sample string "
// Desired string: "This is a sample string"
使用解决方案中提到的字符串方法,我可以考虑分两步进行这些操作。
- 删除前导和尾随空格。
- 在单词边界处重复使用 find_first_of、find_last_of、find_first_not_of、find_last_not_of 和 substr 以获得所需的格式。
原文由 TL36 发布,翻译遵循 CC BY-SA 4.0 许可协议
这称为修剪。如果您可以使用 Boost ,我会推荐它。
否则,使用
find_first_not_of
获取第一个非空格字符的索引,然后使用find_last_not_of
从末尾获取非空格的索引。有了这些,使用substr
来获取没有周围空格的子字符串。作为对您的编辑的回应,我不知道该术语,但我猜想类似于“减少”的内容,所以这就是我所说的。 :) (注意,为了灵活性,我已将空格更改为参数)
结果: