例如,输入“ They are students.” 和 “aeiou”, 则删除之后的第一个字符串变为“Thy r stdnts.”
解题思路:对于字符串,由于ASCII码的所有符号为256个(包括了拓展表)那么,我们可以申请一个数组用来代表这256个字符是否存在于第二个字符串中,如果有,则标记为1,如果没有则标记为0.同理,我们通过查询,对应ASCII值号下,数组是否为1,来判定是否删除。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str1;
string str2;
getline(cin, str1);
getline(cin, str2);
char buf[256] = { 0 };
for (int i = 0; i < str2.size(); i++)
{
buf[str2[i]]++;
}
string ret;
for (int i = 0; i < str1.size(); i++)
{
if (buf[str1[i]] == 0)
ret += str1[i];
}
cout << ret << endl;
system("pause");
return 0;
}