问题
1050 String Subtraction (20 分)
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 S
1
−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.
代码
#include <iostream>
using namespace std;
int main(){
char S1[10010],S2[10010];
scanf("%[^\n]",S1);
getchar();
scanf("%[^\n]",S2);
string ans="";
string SS1 = S1,SS2 = S2;
for (int i = 0; i < SS1.length(); ++i) {
if(SS2.find(SS1[i]) == string::npos){
ans = ans+SS1[i];
}
}
cout<<ans<<endl;
return 0;
}
总结
特别要注意:
输入带空格的字符串要使用char[]和scanf。并且要用getchar吸收每个字符串结尾的换行符。