写得比较。。。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str1;
cin >> str1;
int length = str1.size();
char *str2 = new char[length];
for (int i = 0;i < length;i++)
{
if( str1[i] == 'a'|| str1[i] == 'b'||str1[i]=='c')
str2[i] = '2';
if (str1[i] == 'd' || str1[i] == 'e' || str1[i] == 'f')
str2[i] = '3';
if (str1[i] == 'g' || str1[i] == 'h' || str1[i] == 'i')
str2[i] = '4';
if (str1[i] == 'j' || str1[i] == 'k' || str1[i] == 'l')
str2[i] = '5';
if (str1[i] == 'm' || str1[i] == 'n' || str1[i] == 'o')
str2[i] = '6';
if (str1[i] == 'p' || str1[i] == 'q' || str1[i] == 'r'||str1[i]=='s')
str2[i] = '7';
if (str1[i] == 't' || str1[i] == 'u' || str1[i] == 'v')
str2[i] = '8';
if (str1[i] == 'w' || str1[i] == 'x' || str1[i] == 'y'||str1[i]=='z')
str2[i] = '9';
if (str1[i] >= '0'&&str1[i] <= '9')
str2[i] = str1[i];
if (str1[i] >= 'A'&&str1[i] < 'Z')
str2[i] = str1[i] - 'A' + 'b' ;
if (str1[i] == 'Z')
str2[i] = 'a';
}
cout << str2;
delete str2;
return 0;
}