2021-05-15

                                                                                                                                 7-187 删除字符串中的子串 (20 分)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:

Tomcat is a male ccatat
cat

输出样例:

Tom is a male 

c代码:

#include<stdio.h>
#include<string.h>
char a[1000];
int main()
{
	gets(a);
	int i,j,k,l,o,f=0,p=0;
	char cun[100];
	l=strlen(a);
	char cha[100];
	gets(cha);
	k=strlen(cha);
	while(1)
	{
		int f1=0,p=0;
		for(i=0; i<l; i++)
		{
			f=0;
			for(j=0,o=i; j<k; j++,o++)
			{
				if(a[o]==cha[j])
				{
					f++;
				}
				if(f==k)
				{
					i=o+1;
					f1=1;
				}
			}
			cun[p++]=a[i];
		}
		if(f1==1)
		{
			l=p;
			memset(a,'\0',sizeof(a));
			for(i=0; i<l; i++)
			{
				a[i]=cun[i];
			}
			memset(cun,'\0',sizeof(cun));
		}
		if(f1==0)
		{
			int f5=0;
			for(i=0; i<p; i++)
			{
				if(cun[i]!=' ')
				{
					f5=i;
					break;
				}
			}
			for(i=f5;i<p;i++)
			  printf("%c",cun[i]);
			break;
		}
	}
	return 0;
}
上一篇:#6277. 数列分块入门 1


下一篇:10.3 java