阅读量:71
在 C++ 中优雅地实现字符串的 trim 可以使用 STL 中的算法和 Lambda 表达式来实现。下面是一个简单的示例代码:
#include
#include
#include
std::string trim(std::string s) {
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());
return s;
}
int main() {
std::string s = " hello, world ";
std::cout << "Before trim: " << s xss=removed class="hljs-built_in">trim(s);
std::cout << "After trim: " << s class="hljs-keyword">return 0;
}
在上面的代码中,trim 函数使用了 std::find_if 和 Lambda 表达式来过滤掉字符串开头和结尾的空格字符。通过调用这个函数,可以优雅地实现字符串的 trim 操作。