如何在 C++ 中正确去除 std::string 开头和结尾的空格
大家好!我是一名 C++ 初学者,遇到了一个看似简单的任务:需要去除字符串开头和结尾的空格(以及任何空白字符)。我使用的是 std::string。
我尝试编写自己的 trim 函数,使用循环和通过 std::isspace 检查字符,但代码变得冗长且我认为效率不高。以下是我目前的结果:
```cpp
#include
#include
#include
std::string trim(std::string str) {
// 去除开头的空格
while (!str.empty() && std::isspace(str[0])) {
str.erase(0, 1);
}
// 去除结尾的空格
while (!str.empty() && std::isspace(str[str.length() - 1])) {
str.erase(str.length() - 1, 1);
}
return str;
}
```
这段代码能工作,但我认为频繁调用 erase() 来逐个删除字符非常慢,尤其是对于长字符串。而且,我不确定我的代码是否正确处