题目大意:给出两个字符串,要求以大写形式输出坏掉的键
分析:遍历输入的第一个字符串,用find()函数判断s1中字符是否在s2中存在,如果不存在则以大写形式存入string s3中。
ps:
- find()如果查找不到,返回string::npos。
- int toupper(int ch); 返回int类型,用cout <<(char)ch;强制转换未char型。
代码1:
#include<bits/stdc++.h>
using namespace std;
int main() {
string a,b,c;
getline(cin,a);
getline(cin,b);
for(int i=0; a[i]; i++){
if(b.find(a[i])==string::npos&&c.find(toupper(a[i]))==string::npos){
c+=toupper(a[i]);
}
}
cout << c;
return 0;
}
代码2:
#include<bits/stdc++.h>
using namespace std;
int vis1[1009], vis2[1009];
int main() {
string a, b;
getline(cin, a);
getline(cin, b);
for(int i = 0; i<b.length(); i++) {
vis1[b[i]] = 1;
}
for(int i = 0; i<a.length(); i++) {
if(!vis1[a[i]]) {
if(!vis2[a[i]]) {
printf("%c",toupper(a[i]));
vis2[toupper(a[i])] = 1;
vis2[tolower(a[i])] = 1;
}
}
}
return 0;
}