禁言2

某国有禁言单词X,输入N个单词,如果某个单词中包含禁言单词X(不分大小写),则要被出现的单词X位置要替换为"***",然后才输出。

输入格式 

第一行:一个单词X,长度<10。

第二行:一个正整数N <10^5。

下面有n行,每行一个单词,长度<20。

输出格式 

n行,每行一个单词。

输入样例

SB

4

Hello

Sbstring

KillsbAA

word

输出样例

Hello

***string

Kill***AA

word

样例解释

此题代码及思路如下:

#include<bits/stdc++.h>
using namespace std;
string s1,s2,s3,s4,s5;
int n,y;
int main(){
    cin>>s1;//输入禁言单词
    for(int i=0;i<s1.size();i++)
    {
        if(s1[i]>='a'&&s1[i]<='z')s1[i]=s1[i]-'a'+'A';//将禁言单词转化为大写
    }
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>s2;
        while(1)
        {
            s3=s2;//保存单词
            for(int j=0;j<s2.size();j++)
            {
                if(s2[j]>='a'&&s2[j]<='z')s2[j]=s2[j]-'a'+'A';//将单词转化为大写
            }
            y=s2.find(s1);//寻找单词中的禁言单词
            if(y==-1)break;//直到没有就退出循环
            s4=s3.substr(0,y);//截取前面部分
            s5=s3.substr(y+s1.size(),s2.size()-y);//截取后面部分
            s2=s4+"***"+s5;//保存修改过的单词,继续寻找
        }
        cout<<s3<<endl;
    }
    
    return 0;
}

  • 21
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值