#include <iostream>
using namespace std;
int a[] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
int main() {
string s;
cin>>s;
int len = s.length();
for(int i = 0;i<len;i++){
if(s[i]>='a'&&s[i]<='z'){
cout<<a[s[i]-'a'];
}
else if (s[i]>='A'&&s[i]<='Z') {
if(s[i]=='Z'){
cout<<'a';
}
else{
cout<<(char)(s[i]+33);
}
}
else{
cout<<s[i];
}
}
return 0;
}
// 64 位输出请用 printf("%lld")
使用数组存储对应字母和相应数字之间的关系,然后遍历输出字符中字母的对应的字符即可。



京公网安备 11010502036488号