c++ std::string 删除开头空格和结尾空格
时间: 2023-02-08 22:19:27 浏览: 309
要删除 `std::string` 的开头空格和结尾空格,可以使用 `std::string::erase` 函数。
例如:
```
#include <algorithm>
#include <string>
std::string s = " Hello, World! ";
// 删除开头空格
s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
return !std::isspace(ch);
}));
// 删除结尾空格
s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
return !std::isspace(ch);
}).base(), s.end());
// 输出结果
std::cout << s << std::endl; // 输出 "Hello, World!"
```
上面的代码使用了一些 STL 函数,包括:
- `std::find_if`:在序列中查找第一个满足条件的元素。
- `std::isspace`:判断字符是否是空格。
- `std::rbegin`:返回序列的逆序迭代器(从后向前迭代)。
- `std::rend`:返回序列的逆序结束迭代器(从后向前迭代)。
- `std::base`:将逆序迭代器转换为正序迭代器。
需要注意的是,上面的代码使用了 C++11 的 lambda 表达式,如果你的编译器不支持 C++11,可以使用函数指针代替 lambda 表达式。
阅读全文