描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足 1≤n≤100 1≤n≤100
输入描述:
输入一组密码,长度不超过100个字符。
输出描述:
输出密码变换后的字符串
示例1
输入:
YUANzhi1987
输出:
zvbo9441987
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
string s;
while(cin>>s){
for(int i=0;i<s.size();i++){
if(islower(s[i])){
if(s[i]<='c'&&s[i]>='a')cout<<'2';
if(s[i]<='f'&&s[i]>='d')cout<<'3';
if(s[i]<='i'&&s[i]>='g')cout<<'4';
if(s[i]<='l'&&s[i]>='j')cout<<'5';
if(s[i]<='o'&&s[i]>='m')cout<<'6';
if(s[i]<='s'&&s[i]>='p')cout<<'7';
if(s[i]<='v'&&s[i]>='t')cout<<'8';
if(s[i]<='z'&&s[i]>='w')cout<<'9';
}
else if(s[i]<'Z'&&s[i]>='A'){
s[i]=s[i]-'A'+'a'+1;
cout<<s[i];
}
else if(s[i]=='Z'){
cout<<'a';
}
else cout<<s[i];
}
}
return 0;
}