1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string> 5 #include <algorithm> 6 #include <utility> 7 #include <vector> 8 #include <map> 9 #include <queue> 10 #include <stack> 11 #include <cstdlib> 12 typedef long long ll; 13 #define lowbit(x) (x&(-x)) 14 #define ls l,m,rt<<1 15 #define rs m+1,r,rt<<1|1 16 using namespace std; 17 int t,n,m; 18 string s1,s2,s3; 19 int main() 20 { 21 scanf("%d",&t); 22 for(int i=1;i<=t;i++) 23 { 24 scanf("%d%d",&n,&m); 25 cin>>s1>>s2>>s3; 26 int x=s2[0]-s1[0]; 27 for(int i=0;i<m;i++){ 28 s3[i]-=x;//最好改自己 29 if(s3[i]<'A') s3[i]+=26; 30 else if(s3[i]>'Z') s3[i]-=26; 31 } 32 printf("Case #%d: ",i); 33 for(int i=0;i<m;i++){ 34 printf("%c",s3[i]); 35 } 36 printf(" "); 37 } 38 return 0; 39 } 40 /* 41 以下是针对本题的误区 42 string s; 43 s=""; 44 for(int i=0;i<3;i++){ 45 s[i]='A'; 46 printf("%c ",s[i]); 47 } 48 cout<<s<<endl;//会出现段错误 49 A 50 A 51 A 52 53 54 55 //应为s=""时就默认s.size()=0了 56 //若改为s=" ",两个空格,最后输出AA。 57 */