在 C++ 中優雅地實現字符串的 trim 可以使用 STL 中的算法和 Lambda 表達式來實現。下面是一個簡單的示例代碼:
#include <iostream>
#include <string>
#include <algorithm>
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 << std::endl;
s = trim(s);
std::cout << "After trim: " << s << std::endl;
return 0;
}
在上面的代碼中,trim 函數使用了 std::find_if 和 Lambda 表達式來過濾掉字符串開頭和結尾的空格字符。通過調用這個函數,可以優雅地實現字符串的 trim 操作。