7-6 删除字符串中的子串(20 分)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:
输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:
在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
Tom is a male
题目转自PTA:https://pintia.cn/
AC代码
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
char b[100];
char c[100] = {0};
int count = 0;
gets(a);
gets(b);
int n = strlen(a);
int m = strlen(b);
for (int i = 0; i < n; i++)
{
if (count > m - 2)
{
c[count] = a[i];
int t = strcmp(&c[count-m+1], b);
if (0 == t)
{
for (int i = count - m + 1; i <= count; i++)
{
c[i] = 0;
}
count = count - m + 1;
}
else
{
count++;
continue;
}
}
else
{
c[count] = a[i];
count++;
}
}
puts(c);
return 0;
}