1测试点2:
输入的字符串如果为空,要用getline(cin,s),而不是cin>>s,否则程序做不了
2题目说的如果上键坏了那大写字母打印不了,不是大写转小写打印啦,认真读题
3两个for循环长这样,break只是结束当前内部for循环,跟外部for循环无关
for(
for(
if(
break;
4完整代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<char> res;
int flag;//标记是否出现上档键
int main()
{string a,s;//cin>>a>>s;getline(cin,a);cin>>s;for(int j=0;j<a.size();j++){if(a[j]=='+'){flag=1;}}for(int i=0;i<s.size();i++){int f=0;for(int j=0;j<a.size();j++){if(s[i]==a[j]){f=1;}if((a[j]>='A'&&a[j]<='Z')&&(s[i]==a[j]+32)){f=1;}}if(f==0){res.push_back(s[i]);}}if(res.size()==0){cout<<endl;return 0;}for(vector<char>::iterator it=res.begin();it!=res.end();it++){char c=*it;if(flag&&(c>='A'&&c<='Z')){continue;}else{cout<<c;}}return 0;
}