Avatar ·

如何在C++中去除std::string开头和结尾的空格?

大家好!我是一名C++初学者,正在编写一个处理用户输入的简单程序。我需要删除字符串开头和结尾的多余空格(包括制表符和换行符)。例如,字符串" Hello, World! "应该变成"Hello, World!"。 我知道C++中有std::string,但找不到内置的trim方法。我尝试通过循环编写自己的函数,但代码变得冗长且不方便。 以下是我尝试的内容: ```cpp std::string trim(std::string str) { // 删除开头的空格 while (str[0] == ' ') { str.erase(0, 1); } // 删除结尾的空格 while (str[str.size() - 1] == ' ') { str.pop_back(); } return str; } ``` 但这只适用于普通空格,不适用于制表符,而且看起来效率不高。在C++中有标准的方法吗?也许STL或Boost中有这样的函数?请告诉我如何正确修剪字符串以考虑所有情况。