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;
}