### 题目

Given two strings S​1​​ and S​2​​ , S=S​1​​ −S​2​​ is defined to be the remaining string after taking all the characters in S​2​​ from S​1​​ . Your task is simply to calculate S1​​​ −S​2​​ for any given strings. However, it might not be that simple to do it fast.

Input Specification:
Each input file contains one test case. Each case consists of two lines which gives S​1​​ and S​2​​ , respectively. The string lengths of both strings are no more than 10​4​​ . It is guaranteed that all the characters are visible ASCII codes and white space, and a new line character signals the end of a string.

Output Specification:
For each test case, print S​1​​ −S​2​​ in one line.

Sample Input:

They are students.
aeiou


Sample Output:

Thy r stdnts.


### 解析

• 所谓 s1 - s2 就是从s1中去除出现在s2中的字符，输出剩余部分。

• 所以可以逐个判断s1的字符，判断其是否在s2中出现，若未出现则输出，否则跳过即可。

• 为了操作简单，使用一个布尔数组flag[256]ascii字符也就是0-255，所以遍历一次s2，将flag[s2[i]]设置为true即表示当前字符在s2中出现过。

### 代码

#include <iostream>
#include <string>
#include <string.h>
using namespace std;

int main() {
string s1, s2;
// 原字符串中包含空格，使用getline
getline(cin, s1);
getline(cin, s2);
int len1 = s1.length(), len2 = s2.length();
bool flag[256] = {false};
// 在s2中出现的字符，在s1中剔除
for (int i = 0; i < len2; ++i) flag[s2[i]] = true;
// 逐个字符判断，若未在s2中出现则输出
for (int i = 0; i < len1; ++ i)
if (!flag[s1[i]]) cout << s1[i];
return 0;
}


Q.E.D.

Think twice, code once.