温馨提示×

如何在C++中优雅地实现string trim

c++
小樊
83
2024-06-13 16:35:42
栏目: 编程语言

在 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 操作。

0