没啥难度,上代码。
#include<bits/stdc++.h>
using namespace std;
unordered_map<char, int> mp, vis, print;
int main() {
string s1, s2;
getline(cin, s1);
getline(cin, s2);
for (int i = 0; i < s1.size(); i++) {
if (isalpha(s1[i])) mp[toupper(s1[i])] = 1;
else mp[s1[i]] = 1;
}
for (int i = 0; i < s2.size(); i++) {
if (isalpha(s2[i])) vis[toupper(s2[i])] = 1;
else vis[s2[i]] = 1;
}
for (int i = 0; i < s1.size(); i++) {
if (isalpha(s1[i])) {
if (vis[toupper(s1[i])] != 1 && print[toupper(s1[i])] != 1) {
printf ("%c", toupper(s1[i]));
print[toupper(s1[i])] = 1;
}
}
else {
if (vis[s1[i]] != 1 && print[s1[i]] != 1) {
printf ("%c", s1[i]);
print[s1[i]] = 1;
}
}
}
}