PTA 基础编程题 5-29 删除字符串中的子串 (20分)

**

PTA测验 基础编程题目集

**
5-29 删除字符串中的子串 (20分)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

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

输出格式:

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

输入样例:

Tomcat is a male ccatat
cat
输出样例:

Tom is a male

#include
#include
#include
#include
#include
#include
using namespace std;
char a[100], b[100];
int main()
{
    int i, k1, k2, j, flag, k, count, t;
    while (gets(a) != NULL)
    {
        gets(b);
        k1 = strlen(a);
        k2 = strlen(b);
        while (1)
        {
            flag = 0;
            for (int i = 0; i < k1; i++)
            {
                if (a[i] == b[0])
                {
                    count = 0;
                    for (int j = 0; j < k2; j++)//搜索是否含子序列
                    {
                        if (a[i + j] == b[j])
                            count++;
                    }
                    if (count == k2)
                    {
                        count = 0;
                        for (int k = i; k < k1 - k2; k++)
                            a[k] = a[k2 + k];
                        for (int k = k1 - k2; k < k1; k++)
                            a[k] = '\0';
                        break;
                    }

                }
            }
            for (int i = 0; i < k1 - k2; i++)
            {
                if (a[i] == b[0])
                {
                    count = 0;
                    for (int j = 0; j < k2; j++)//检验是否含子序列
                    {
                        if (a[i + j] == b[j])
                            count++;
                    }
                }
                if (count == k2)
                {
                    flag = 1;
                    break;
                }
            }
            if (flag == 0)//搜不到就跳出
                break;
        }
        for (i = 0;; i++)
        {
            if (/*a[i] == ' '&&a[i + 1] == '\0' || */a[i] == '\0')
                break;
            cout << a[i];
        }
        cout<return 0;
    }

本人还是新手,方法不是最优化方案

你可能感兴趣的:(PAT)