问题 C: 字符串的查找删除
时间限制: 1 Sec 内存限制: 32 MB
题目描述
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入
in #include int main() { printf(" Hi "); }
样例输出
#clude tma() { prtf("Hi"); }
提示
注:将字符串中的In、IN、iN、in删除。
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
char ch,deleteData[100];
int i=0,len;
bool flag;
scanf("%s",&deleteData);
ch=getchar();
len=strlen(deleteData);
while((ch=getchar())!=EOF)//一个一个字符读入并进行处理
{
if(tolower(ch)==tolower(deleteData[i]))//可能会删除 开始匹配上
{
i++;
if(i>=len) i=0;
}
else
{
if(i==0)//一个字符都没有匹配上
{
if(ch!=' ') putchar(ch);//需要输出的
}
else//有部分字符匹配上
{
for(int k=0;k<i;k++)
{
putchar(deleteData[k]);
}
i=0;
if(ch!=' ') putchar(ch);
}
}
}
return 0;
}