这里用cin有一个点过不了,改用getline就没问题了。原因似乎是坏掉的键数有可能为0。
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main(){
string str1,str2,str3;
int flag[100000]={0},count=0;
getline(cin,str1);
getline(cin,str2);
set<char> str1Set;
for(int i=0;i<str1.length();i++){
if(str1[i]>='A'&&str1[i]<='Z'){
str1Set.insert(str1[i]+32);
}
str1Set.insert(str1[i]);
}
for(int i=0;i<str2.length();i++){
if(str1Set.count(str2[i])!=0){
flag[i]=1;
}
if(str1Set.count('+')!=0){
if(str2[i]>='A'&&str2[i]<='Z'){
flag[i]=1;
}
}
}
for(int i=0;i<str2.length();i++){
if(flag[i]==1){
continue;
}else{
cout<<str2[i];
count++;
}
}
return 0;
}