Avatar ·

如何在 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() 来逐个删除字符非常慢,尤其是对于长字符串。而且,我不确定我的代码是否正确处