您的位置:首页 > 其它

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

2016-08-27 20:57 141 查看



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

时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:5092

解决:2097

题目描述:

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

输入只有1组数据。

输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:

删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include
int main()
{

printf(" Hi ");
}

样例输出:
#clude
tma()
{

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: