想询问一下测试点4问什么答案错误?


#include<iostream>
#include<string>
using namespace std;
int main()
{
    string s1, s2;
    bool  flag[150] = { false };
    getline(cin, s1);
    getline(cin, s2);
    int i, j = 0;
    int count = 0;
    for (i = 0; i < s1.length(); i++)
    {
        flag[int(s1[i])] = true;
        if (s1[i] >= 'A' && s1[i] <= 'Z')
        {
            flag[int(s1[i] + 32)] = true;
        }
    }
    for (i = 0; i < s2.length(); i++)
    {
        if (flag[int(s2[i])] == false)
        {
            if ((s2[i] >= 'A' && s2[i] <= 'Z') && flag[int(s2[i])] != true && s1.find('+') == string::npos)
            {
                if (flag[s2[int('+')]] != true)
                {
                    cout << s2[i];
                    count=1;
                }    
            }
            if ((s2[i] < 'A' || s2[i] > 'Z') && flag[int(s2[i])] != true) 
            {
                cout << s2[i]; count=1;
            }

        }
    }
    if (count == 0)
        cout << endl;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/818840190546163.png "#left")

img

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    vector<bool> f(256, true);
    string s1, s2;
    cin >> s1 >> s2;
    for (auto c : s1)
    {
        if (isupper(c))
        {
            f[c] = false;
            f[tolower(c)] = false;
        }
        else if (c == '+')
        {
            for (char a = 'A'; a <= 'Z'; a++)
                f[a] = false;
        }
        else
        {
            f[c] = false;
        }
    }
    for (auto c : s2) {
        if (f[c])
            cout << c;
    }
    return 0;
}

img