0%

C++删除字符串前后的空格

  1. 说明和代码示例

说明和代码示例

使用std::stringerase删除数据,用std::find_if来查找位置。

需要注意的是,从末尾开始查找需要用到.rbegin().rend(),此时调用find_if的返回值是std::reverse_iterator,需要加上.base()来获取位置指针。

1
2
3
4
5
6
7
8
// 值
std::string val;
// 删除值前后的空格和缩进
const auto bNotWhite = [](const char c) {
return c != ' ' && c != '\t';
};
val.erase(val.begin(), std::find_if(val.begin(), val.end(), bNotWhite)); // ltrim
val.erase(std::find_if(val.rbegin(), val.rend(), bNotWhite).base(), val.end()); // rtrim