先找到字符串中所有的“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;
}