PTA 7-29 删除字符串中的子串

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

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

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

输入样例:
Tomcat is a male ccatat
cat



输出样例:
Tom is a male

代码如下:

#include<stdio.h>
#include<string.h>
main()
{
	char data[99],data_new[99],map[99],*p,*a;
	int i=0,temp=0;
	gets(data);
	gets(map);
	a=data;
	p=strstr(data,map);
	while(p-a>=0)
	{
		for(i=p-a;i<p-a+strlen(map);i++)
		data[i]='+';
		for(i=0;i<strlen(data);i++)
		if(data[i]!='+')data_new[temp++]=data[i];
		data_new[temp]='\0';
		strcpy(data,data_new);
		p=strstr(data,map);
		temp=0;
	}
	printf("%s",data);
}

  

     '\0'隔断处理法:
#include<stdio.h>
#include<string.h>
main()
{
	char data[99],map[99],d[99],*p;
	gets(data);
	gets(map);
	p=strstr(data,map);
	while(p!=NULL)
	{
		*p='\0';
		strcpy(d,p+strlen(map));
		strcat(data,d);
		p=strstr(data,map);
	}
	puts(data);
	return 0;
}

  

posted @ 2020-03-13 18:34  X-Yunner  阅读(822)  评论(0)    收藏  举报