测试点2:可能没有坏键,此时输入的第一行为空格,第二行为应该输入的文字,使用getline可以解决问题
#include<iostream>
#include<cctype>
using namespace std;
int main() {
string broken, ori;
getline(cin, broken);
getline(cin, ori);
int flag = 0;
if(broken.find('+') != string::npos) flag = 1;
for(int i = 0; i < ori.length(); i++) {
if(flag == 1 && isupper(ori[i])) continue;
if(isalpha(ori[i])) {
if(broken.find(toupper(ori[i])) == string::npos) cout << ori[i];
} else if(broken.find(ori[i]) == string::npos) {
cout << ori[i];
}
}
return 0;
}
#include <iostream>
#include <cctype>
using namespace std;
int main() {
string bad, should;
getline(cin, bad);
getline(cin, should);
for (int i = 0, length = should.length(); i < length; i++) {
if (bad.find(toupper(should[i])) != string::npos) continue;
if (isupper(should[i]) && bad.find('+') != string::npos) continue;
cout << should[i];
}
return 0;
}