CF:208A. Dubstep

先找到字符串中所有的“WUB”,并将其转换成空格,此过程要用到 变量名.find( ) 和 变量名.replace( ) 函数,若find( )函数能找到所要找的字符串,则返回的是所找字符串第一次出现的首位置,若未找到,则返回“-1”,即npos的值;replace函数后括号里的参数必须包含替换范围和所要换成的字符串。然后将多余的空格擦除即可输出,注意不要输出头尾空格。

#include<iostream>
#include<string>

int main(){
    std::string song;
    while(std::cin>>song){
        for(int i=0;;++i){
            unsigned found = song.find("WUB");
            if (found!=std::string::npos)
                song.replace(found,3," ");
            else
                break;
        }

        for(int i=0;i<song.length();++i)
            if(song[i]==' '&&song[i+1]==' '){
                song.erase(song.begin()+i+1);
                i=i-1;
            }
        if(song[0]!=' ')
            std::cout<<song[0];
        if(song.length()!=1){
            for(int i=1;i<=song.length()-2;++i)
                std::cout<<song[i];
            if(song.length()!=1)
                if(song[song.length()-1]!=' ')
                    std::cout<<song[song.length()-1];
        }
        std::cout<<'\n';
    }
    return 0;
}


 

PS:代码中的song.begin()函数返回的是字符串的首地址,与之相对应的song.end()函数返回的是字符串的尾地址,要擦除或替换某个字符是得用到这两个函数,找到要擦除或替换的字符的地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值