#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")
使用数组存储对应字母和相应数字之间的关系,然后遍历输出字符中字母的对应的字符即可。