码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-27 21:52:17      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

题目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;
}

 

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

标签:

原文地址:http://www.cnblogs.com/zhuoyuezai/p/5813745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!