题目
思路
关键在于题目中所说的,所有字符都在可见的ACSII码内,这样我们就可以通过一个标记数组,初始化为0 ,遍历第一个字符串时将每个字符对应的值的位置置为1,遍历第二个字符串的时候将每个字符对应的值的位置置回0,这样在输出第一个字符串中对应值为1的字符即可
代码
#include <iostream>
using namespace std;
#define nmax 200
#define inf 999999
int mark[nmax];
int main()
{
string str;
memset(mark, 0, sizeof(mark));
getline(cin, str);
for (int i = 0; i < str.length(); ++i) {
mark[str[i]] = 1;
}
string str1;
getline(cin, str1);
for (int i = 0; i < str1.length(); ++i) {
mark[str1[i]] = 0;
}
for (int i = 0; i < str.length(); ++i) {
if (mark[str[i]] != 0)
cout << str[i];
}
return 0;
}