c++ 字符串去除指定的字符

马肤
这是懒羊羊

在C++中,想从一个字符串中移除特定的字符,可以使用 std::string 的成员函数操作字符串,或利用算法库中的 std::remove 或 std::remove_if 函数,欢迎大家补充说明!!!

选择哪一种取决于你的具体应用场景和性能要求。通常,使用 std::remove 或 std::remove_if 与 erase 结合会是一种高效且简洁的方式。

使用 std::string 的 erase 和 find 方法

循环查找并擦除特定字符,逐个字符地搜索并移除字符

#include 
#include 
int main() {
    std::string str = "Hello, World!";
    char char_to_remove = 'l';
    size_t pos;
    while ((pos = str.find(char_to_remove)) != std::string::npos) {
        str.erase(pos, 1);
    }
    std::cout 
    std::string str = "Hello, World!";
    char char_to_remove = 'l';
    str.erase(std::remove(str.begin(), str.end(), char_to_remove), str.end()); 
    std::cout 
    std::string str = "Hello, World!\n";
    // 移除所有空格字符
    str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end()); 
    std::cout 
    std::string str = "Bananas are amazing!";
    char char_to_remove = 'a';
    // std::remove_if 重新排列字符串,移除指定的字符,返回新的逻辑结尾
    auto new_end = std::remove_if(str.begin(), str.end(),
                                  [char_to_remove](char c) { return c == char_to_remove; });
    // 调用 erase 移除从新逻辑结尾到实际结尾的所有字符
    str.erase(new_end, str.end());
    std::cout 

文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:表情:
评论列表 (暂无评论,0人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码