编程实现:密文解密
题目描述
有一段密文,加密规律如下:
原文中所有的字符在字母表中的位置被左移了若干位(如:a左移一位后为2,A左移一位后为2,f左移三位后为c......).
例如:密文为Ayz,已知加密时原文中的字母被左移了3位,解密后,原文是Dbc。
请根据这个规律,对密文进行解密。
输入描述
共两行
第一行输入一个只包含大小写字母的字符串《长度小于100),表示密文第二行输入一个正整数n(1n≤100000),表示原文中的字母在字母表中的位置被左移的位数输出描述
输出一个字符串,表示解密后的原文
样输入:
Ayz
3
样例输出:
Dbc
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int n;
cin>>s>>n;
for(int i=0;i<s.length();i++){
if(s[i]>='A'&&s[i]<='Z'){
if(s[i]+n<='Z'){
s[i]+=n;
}else{
s[i]=s[i]+n-'Z'+'A'-1;
}
}else if(s[i]>='a'&&s[i]<='z'){
if(s[i]+n<='z'){
s[i]+=n;
}else{
s[i]=s[i]+n-'z'+'a'-1;
}
}
}
cout<<s;
return 0;
}