#include <bits/stdc++.h>
using namespace std;
int main() {
string bad, good;
getline(cin, bad);
getline(cin, good);
for(int i = 0; i < good.size(); i++){
if(bad.find(toupper(good[i])) == string :: npos &&
(bad.find(‘+‘) == string :: npos || isupper(good[i]) == false))
cout << good[i];
}
}
原来是想读取坏键,以此来删除实际输入里面的坏键的字符。但参考了别人的之后发现有点麻烦,所以改成判断是否是坏键,如果不是则输出的方式。
上档键可以分四种情况,而只有一种情况是需要跳过的,也就是当存在上档键并且存在大写字母的时候。而其他三种情况都可以直接输出。所以将上面的且的关系反过来,那就可以得到下面上档键的判断代码。
mp.find(‘+‘) == mp.end() || isupper(good[i]) == false