#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
vector<string> re{ {" "},{",."},{"abc"},{"def"},{"ghi"},{"jkl"},{"mno"},{"pqrs"},{"tuv"},{"wxyz"} };
void op(string str) {
bool flag = false;//代表数字模式
int p = 0;
while (p < str.size()) {
string temp;
//分离数字
while (str[p] <= '9' && str[p] >= '0' && p < str.size()) {
temp.push_back(str[p]);
++p;
}
//不同模式的处理,flag为0代表默认模式,
if (flag) {
int slow = 0;
int fast = 0;
while (fast < temp.size()) {
int cnt =0;
int index = temp[slow] - '0';
while (temp[fast] == temp[slow] && fast < temp.size()) {
++cnt;
++fast;
}
slow = fast;
if (cnt < re[index].size())
{
cout << re[index][cnt - 1];
}
else {
cout << re[index][0];
}
}
}
else {
for (char ch : temp) {
cout << ch - '0' ;
}
}
if (str[p] == '#') {
flag = flag ? false : true;
}
++p;
}
}
//#222235/56
///56123#222235/56
int main() {
string str;
getline(cin, str);
op(str);
}
标签:输入法,temp,int,九宫格,fast,str,机试,include,size
From: https://www.cnblogs.com/chunbai11/p/16890831.html