分值 : 20 难度 : 简单题 思路 : String题,另外搞个数组存放打印过的字符就行 坑点 : 如果第二个字符串先结束遍历,意思就是说后面的字符全部缺失了,那你要手动遍历第一个 字符串中剩下的所有字符,之前没出现过的就打印.
123456789101112131415161718192021222324252627282930313233343536
#include <iostream>using namespace std;int data[256] ;char change(char ch){ if(ch >= 'a' && ch<='z') ch= ch-'a'+'A'; return ch ;}int main() { string s , s2 ; cin >>s >>s2 ; int i , j ; for(i = 0,j = 0 ; i< s.size(),j<s2.size(); i++ ) { if(s[i]==s2[j]) { j++ ; continue;} s[i] = change(s[i]) ; if(data[(int)s[i]] == 0) { cout << s[i]; data[(int)s[i]] = 1 ; continue; } } while (i<s.size()) { s[i] = change(s[i]) ; if(data[(int)s[i]] == 0) { cout << s[i]; data[(int)s[i]] = 1 ; } i++; } cout<<endl ;}