题目
题目大意
坏的键盘不能打出字符。给出2个字符串,一个字符串是期望打出的字符,另一个字符串是实际打出的字符。要求输出坏掉的字符,字母键用大写字母。字符范围是_以及大小写字母和数字。
思路
因为大小写字母是同一个键,所以可以把所有的小写字母转换为大写字母。可以外循环遍历s1,内循环可用find()函数在s2中查找与s1中相同的字符。
知识点
find()函数用法:s.find(c, pos); // 从pos开始在s中查找字符c,返回该字母的索引,默认从0开始查找,如果没有找到返回-1。s.find(str, pos)是查找字符串。
C标准库中有islower()函数,判断是否是小写字母,isupper()判断是否是大写字母。
代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;int main(){string s1, s2;cin >> s1 >> s2;for (int i = 0; i < (int)s1.size(); i++){if (islower(s1[i])){s1[i] -= 32;}}for (int i = 0; i < (int)s2.size(); i++){if (islower(s2[i])){s2[i] -= 32;}} // 将所有的小写字母转换为大写字母string res;for (int i = 0; i < (int)s1.size(); i++){if (s2.find(s1[i]) == -1 && res.find(s1[i]) == -1){res += (s1[i]);}} // 用find()函数cout << res << endl;return 0;
}