九度oj-字符串的查找删除
转自:这位博主~
题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include
int main()
{
printf(" Hi ");
}
样例输出:
#clude
tma()
{
prtf("Hi");
}
题目分析:
缓冲区的合理利用!实在是太巧妙了!
# include<stdio.h>
# include<string.h>
# include<stdlib.h>
int main()
{
char p[10];
scanf("%s",p);
int len=strlen(p);
char ch;
int i=0,k=0;
ch=getchar();//这里的ch是换行符
while((ch=getchar())!=EOF)
{
if(ch==p[i])
{
i++;
if(i>=len)
i=0;
}
else
{
if(ch!=' ')
putchar(ch);
for(k=0;k<i;k++)
{
putchar(p[k]);//这里是删除差一点就匹配上的字符!
}
i=0;
}
}
return 0;
}