#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>//里面有isdigit():数字字符返回true
using namespace std;
int maxn=100010;
int main(){
char str[maxn];
cin.getline(str,maxn);
bool HashTable[258];//键盘按键与 ASCII 字符集对照表
memset(HashTable,true,sizeof(HashTable));//注意初始化为true的情况和false不一样
for(int i=0;i<strlen(str);i++){
HashTable[tolower(str[i])]=false;//把大写全转换为小写
}
cin.getline(str,maxn);
for(int i=0;i<strlen(str);i++){
//将大写字母分开
if(HashTable[tolower(str[i])]==false)
continue;
if(isupper(str[i])&& HashTable['+']==false)
continue;
printf("%c",str[i]);
}
return 0;
}
用到string的find:(参考柳神)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cctype>//里面有isdigit():数字字符返回true
using namespace std;
int main(){
string bad,str;
//cin以空格和回车作为结束符
getline(cin,bad);
getline(cin,str);
for(int i=0;i<str.length();i++){
//将大写字母分开
if(bad.find(toupper(str[i]))!=string::npos)
continue;
if(isupper(str[i])&&bad.find('+')!=string::npos)
continue;
cout<<str[i];
}
return 0;
}