输入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>
int main()
{
char s[100];
char a[100];
gets(s);gets(a);//读取数组s是待删除数组,a是模板数组
int i,j,k;
i=0;
int len = strlen(a);//计算模板数组长度
while(s[i]!='\0')//遍历数组
{
if(s[i]==a[0]) //第i个开始匹配
{
int count=0;
for(j=i;j<i+len;j++)
{
if(a[j-i]==s[j]) count++;
}
if(count==len) //若完全匹配
{
for(k=i+len;k<strlen(s);k++) //删除匹配的子串
{
s[k-len]=s[k];
}
s[k-len]='\0';
i=0;
}
else i++;
}
else i++;
}
printf("%s",s);
}