收获:
cin>>c:不能输入空格
getline(cin,s):之后不需要getchar()
如果使用str.erase方法,需要注意c++不支持字符串完全删除,需要结合str.find函数使用,s2作为循环变量,用来查找
也可以使用标志数组存储字符类型
也可以使用两层循环,使用最朴素的c语言逐个判断是否输出
代码:
#include<iostream>
using namespace std;
#include<cstring>
#include<string>
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
for(int i=0;i<s1.size();i++)
{
if(s2.find(s1[i])==-1) //在输出时候判断,如果出现重复就不输出
cout<<s1[i];
}
//也可以新开辟一个空间,flag[char],进行判断
// for(int i=0;i<B.length();i++)
// {
// judge[B[i]-'0']=1;
// }
// for(int i=0;i<A.length();i++)
// {
// if(judge[A[i]-'0']!=1)
// printf("%c",A[i]);
// }
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str, s;
int pos;
getline(cin, str);
getline(cin, s);
for(int i=0;i<s.length();i++){
while((pos=str.find(s[i]))!=-1){
str.erase(pos, 1);
}
}
cout<<str;
return 0;
}
题目: