北航2009机试——字符串的查找删除

来源:互联网 发布:java软件工程师学习班 编辑:程序博客网 时间:2024/06/05 23:52

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

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:4866

解决:1990

题目描述:

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

输入:

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

输出:

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

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

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


从缓冲区一个一个读入字符,然后比较读入字符和模式字符串,比较他们的tolower()小写转换结果是否相等。

因为已经说了是短字符串,所以不要考虑KMP等等方法就可以求解。


#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<set>#include<map>using namespace std;char p[100];char ch;char t[1000][1000];int main(){    scanf("%s",p);    int len = strlen(p);    int i = 0;    ch = getchar();    while((ch=getchar())!=EOF)    {        if(tolower(ch)==tolower(p[i]))        {            i++;            if(i>=len) i=0;        }        else        {            if(i==0)            {                if(ch!=' ')putchar(ch);            }            else            {                for(int k=0;k<i;k++)                {                    putchar(p[k]);                }                i = 0;                if(ch!=' ')putchar(ch);            }        }    }    return 0;}


1 0
原创粉丝点击