输入一个字符串(包括大小写字母和空格),除去空格输出在字符串中出现过的字符。

输入格式:

输入一个字符串

输出格式:

输出在字符串中出现过的字符,每个字符打印一次,按字母顺序打印(注意:空格不算,大小写字符算不同字符)。打印时按字母的顺序,大写在前,小写在后。

输入样例:

在这里给出一组输入。例如:

1
This is a good hat

输出样例:

在这里给出相应的输出。例如:

1
Tadghiost

思路

遍历字符串A,针对A中的每个字符用string的find函数判断B中知否存在该字符,若不存在输出该字符。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main(){
string A,B;
getline(cin,A);
getline(cin,B);
for(int i=0;i<A.size();i++){
if(B.find(A[i])==B.npos) cout<<A[i];
}
return 0;
}

或者是标记第二个字符串得字符,再遍历第一个字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

using namespace std;

int main() {
string str1;
getline(cin,str1);
string str2;
getline(cin,str2);
bool book[200]{false};
for(int i=0;i<str2.size();i++){//记录第二个字符串的字符
book[(int)str2[i]]=true;
}
for(int i=0;i<str1.size();i++){
if(!book[str1[i]]){//没有标记则输出
printf("%c",str1[i]);
}
}

cout << endl;
return 0;
}