小英是藥學專業大三的學生,暑假期間得到了去醫院藥房實習的機會。
在藥房實習期間,小英紮實的專業基礎得到了醫生的一致好評,得知小英在計算概論中取得過好成績後,主任又額外交給她一項任務,解密抗戰時期被加密過的一些傷員的名單。
通過研究,小英發現了以下加密規律(括號中是一個「原文 -> 密文」的例子)
1. 原文中全部的字符都在字母表中被循環左移了三個位置(dec -> abz)
2. 逆序存儲(abcd -> dcba )
3. 大小寫反轉(abXY -> ABxy) ide
GSOOWFASOq
Trvdizrrvj
1 #include<stdio.h> 2 #include<string.h> 3 void fun1(char a[]);//將a[]循環右移三位 4 void fun2(char a[]);//將a[]逆序存儲 5 void fun3(char a[]);//將a[]大小寫反轉 6 int main() 7 { 8 char str[100]; 9 gets(str); 10 fun1(str); 11 fun2(str); 12 fun3(str); 13 puts(str); 14 return 0; 15 } 16 void fun1(char a[])//將a[]全部的字符都在字母表中循環右移三個位置( abz -> dec) 17 { 18 int i,len=strlen(a); 19 for(i=0;i<len;i++) 20 { 21 if(a[i]>='a'&&a[i]<='z') 22 { 23 a[i]=a[i]+3; 24 if(a[i]>'z') 25 a[i]=a[i]-'z'-1+'a'; 26 } 27 else 28 { 29 a[i]=a[i]+3; 30 if(a[i]>'Z') 31 a[i]=a[i]-'Z'-1+'A'; 32 } 33 } 34 } 35 void fun2(char a[])//將a[]逆序存儲 36 { 37 int i,j,len=strlen(a); 38 char t; 39 for(i=0,j=len-1;i<j;i++,j--) 40 { 41 t=a[i];a[i]=a[j];a[j]=t; 42 } 43 } 44 void fun3(char a[])//將a[]大小寫反轉 45 { 46 int i,len=strlen(a); 47 for(i=0;i<len;i++) 48 { 49 if(a[i]>='a'&&a[i]<='z') 50 { 51 a[i]=a[i]-32; 52 } 53 else 54 { 55 a[i]=a[i]+32; 56 } 57 } 58 }