直接上代码:
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
map<string, char> mStr = {
{"abc", '2'},
{"def", '3'},
{"ghi", '4'},
{"jkl", '5'},
{"mno", '6'},
{"pqrs", '7'},
{"tuv", '8'},
{"wxyz", '9'},
};
string str;
while (cin >> str) {
string tmpstr;
for (int i = 0; i < str.length(); i++) {
if (str[i] >= 'A' && str[i] < 'Z') {
tmpstr += str[i] + 32 + 1;
} else if (str[i] == 'Z') {
tmpstr += 'a';
} else if (str[i] >= 'a' && str[i] <= 'z') {
for (auto it : mStr) {
if (it.first.find(str[i]) != it.first.npos) {
tmpstr += it.second;
break;
}
}
} else {
tmpstr += str[i];
}
}
cout << tmpstr << endl;
}
return 0;
}