首页 > 代码库 > 题目1168:字符串的查找删除

题目1168:字符串的查找删除

题目1168:字符串的查找删除

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:5092

解决:2097

题目描述:

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。

输入:

输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。

输出:

删除输入的短字符串(不区分大小写)并去掉空格,输出。

样例输入:
in#include int main(){printf(" Hi ");}
样例输出:
#cludetma(){prtf("Hi");}
提示:

注:将字符串中的In、IN、iN、in删除。

#include<iostream>#include<stdio.h>#include<queue>#include<string>#include<string.h>#include<algorithm>#include<ctype.h>using namespace std;int main(){    char str[101];    gets(str);    string a=str;//将其保存在a中    for(unsigned int i=0; i<a.size(); i++)    {        a[i]=tolower(a[i]);//将a中的字符全部改为小写    }    while(gets(str))//输入长字符串    {        string b=str,c=b;        for(unsigned int i=0; i<b.size(); i++)        {            b[i]=tolower(b[i]);        }        int t=b.find(a,0);//在b中查找a的位置        while(t!=string::npos)//若查找成功,则重复循环        {            c.erase(t,a.size());//删除c中相应位置字符,c为原串            b.erase(t,a.size());            t=b.find(a,t);//继续查找b中下一个出现字符串a的位置        }        t=c.find( ,0);        while(t!=string::npos)        {            c.erase(t,1);            t=c.find( ,0);        }//删除c中所有的空格        cout<<c<<endl;    }    return 0;}

 

题目1168:字符串的查找删除