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

 

 

 

 

posted @ 2018-03-25 20:15  xzhws  阅读(44)  评论(0编辑  收藏  举报