有一个测试点过不了,如何解决?

问题遇到的现象和发生背景

这里是题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805130426171392
这里是题目截图:

img

img

这里是代码段:

#include <stdio.h>
#include <string.h>
int main()
{
    char a[10001],b[10001];
    gets(a);
    gets(b);
    int i,j,len=strlen(a);
    for(i=0;i<len;i++)
        for(j=0;j<strlen(b);j++)
            if(a[i]==b[j])
            {
                strcpy(a+i,a+i+1);//该字符的后一位作为起始地址复制到当前位置,实现剪切
                len--;
                j=-1;
            }
    puts(a);
    return 0;
}

思路是将字符串a中字符提出挨个与b字符串中字符比对,若相同,则在字符串a中剪切掉那个字符,同时a字符串长度缩减

供参考:

#include <stdio.h>
#include <string.h>
int main()
{
    char a[10001], b[10001], c[10001], t[500] = { 0 };
    int i, cnt = 0;
    gets(a);
    gets(b);
    for (i = 0; i < (int)strlen(b); i++)
    {
        t[b[i]]++;
    }
    for (i = 0; i < (int)strlen(a); i++)
    {
        if (t[a[i]] == 0)
        {
            c[cnt++] = a[i];
        }
    }
    c[cnt] = '\0';
    printf("%s\n", c);
    return 0;
}