一开始我怎么也对不了,但是又觉得和别人写的一样啊。后来发现对于bool flag[1000]={true};来说,只有flag[0]被赋值了true,其他的都是false。在赋值这方面要小心,以后还是培养用fill或者memset赋值的习惯吧。
#include <stdio.h>
#include <iostream>
#include <cstring>
using namespace std;
bool flag[1000];
int main(){
string str1,str2;
memset(flag,true,sizeof(flag));
getline(cin,str1);
getline(cin,str2);
for(int i=0;i<str2.length();i++){
flag[str2[i]]=false;
}
for(int i=0;i<str1.length();i++){
if(flag[str1[i]]==true){
printf("%c",str1[i]);
}
}
return 0;
}