题目描述
Given two strings S1 and S2, S=S1−S2 is defined to be the remaining string after taking all the characters in S2 from S1 . Your task is simply to calculate S1−S2 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 S1 and S2 ,respectively. The string lengths of both strings are no more than 104 . 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 S1 −S2 in one line.
Sample Input:
They are students.
aeiou
Sample Output:
Thy r stdnts.
题目要求总结:
题目要求输入两个字符串,把第一个字符串中在第二个字符串出现的字符删除然后作为最后的结果输出
解题代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string>
#include<string.h>
using namespace std;
char str1[10000], str2[10000];
bool flag[10000] = {1};
int main(){
fill(flag, flag + 10000, true);
int i = 0;
while((str1[i] = getchar()) != '\n') i++;
str1[i] = '\0';
int j = 0;
while((str2[j] = getchar()) != '\n') j++;
str2[j] = '\0';
for(int k = 0; str2[k] != '\0'; k++){
printf("%d ", flag[str2[k]]);
if(flag[str2[k]] == true){
flag[str2[k]] = false;
}
}
for(int n = 0; str1[n] != '\0'; n++){
if(flag[str1[n]] == true){
printf("%c", str1[n]);
}
}
return 0;
}