您当前的位置: 首页 >  c++

命运之手

暂无认证

  • 1浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【C++】【字符处理】C++替换字符中的某个字符,最简单的实现方式

命运之手 发布时间:2021-09-12 23:22:35 ,浏览量:1

代码


    std::string str = "Hello World 11111";
    str.erase(remove_if(str.begin(), str.end(), [](char c) -> bool {
        return c == '1';
    }), str.end());

解析

首先,str.begin()和str.end()两个函数返回的都是迭代器对象,它们分别指向字符串开头和字符串结束位置

第三个参数,[ ]( ) -> { },是一个用lambda进行简写的回调函数,这个函数接受一个char,然后判断它是否等于’1’

remove_if是一个迭代函数,它遍历begin-end之间的所有字符,将符合回调函数条件的字符,全部移动到字符串尾部

remove_if返回的也是一个迭代器对象,它指向首个被移动的元素的位置

erase也是一个迭代函数,它接受两个参数,begin_iterator,end_iterator,移除两个位置之间的所有字符

erase返回的也是一个迭代器,指向最后一个被移除元素后面的位置,即原来end_iterator指向的位置

再以上代码中,erase的首个参数,是首个被移动的元素的位置,第二个参数是移动后,新的string结束位置

实际也就相当于移除所有被移动的字符,从而就达到了移除所有符合回调函数的字符

关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.0379s