不区分大小写,输出大写字母。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
map<char,int>m;
int main(){
string str1,str2;
char ch;
cin>>str1>>str2;
for(int i=0,j=0;i<str1.length();){
if(str1[i]>='a'&&str1[i]<='z'){
ch=str1[i]-('a'-'A');
}
else if(str1[i]>='A'&&str1[i]<='Z'){
ch=str1[i]+('a'-'A');
}
else{
ch=' ';
}
if(str1[i]==str2[j]){
m[str1[i]]=0;
m[ch]=0;
i++;j++;
}
else{
if(ch==str2[j]){
m[ch]=0;
m[str1[i]]=0;
i++;j++;
}
else{
m[str1[i]]=1;
m[ch]=1;
i++;
}
}
}
for(int i=0;i<str1.length();i++){
if(str1[i]>='a'&&str1[i]<='z'){
ch=str1[i]-('a'-'A');
}
else if(str1[i]>='A'&&str1[i]<='Z'){
ch=str1[i]+('a'-'A');
}
else{
ch=' ';
}
if(m[str1[i]]==1||m[ch]==1){
if(str1[i]>='a'&&str1[i]<='z'){
printf("%c",str1[i]-('a'-'A'));
}
else{
printf("%c",str1[i]);
}
m[str1[i]]=0;
m[ch]=0;
}
}
return 0;
}
/*
7_This_is_a_test.
_hs_s_a_tst
*/
简单标记一下即可