北航2009機試——字串的查詢刪除

wxyfennie發表於2016-06-09

題目1168:字串的查詢刪除

時間限制:1 秒

記憶體限制:32 兆

特殊判題:

提交:4866

解決:1990

題目描述:

給定一個短字串(不含空格),再給定若干字串,在這些字串中刪除所含有的短字串。

輸入:

輸入只有1組資料。
輸入一個短字串(不含空格),再輸入若干字串直到檔案結束為止。

輸出:

刪除輸入的短字串(不區分大小寫)並去掉空格,輸出。

樣例輸入:
in
#include 
int main()
{

printf(" Hi ");
}
樣例輸出:
#clude
tma()
{

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


相關文章