7-83 九宫格输入法

简介: 7-83 九宫格输入法

7-83 九宫格输入法 (15 分)


假设有九宫格输入法键盘布局如下:


 [ 1,.?! ] [ 2ABC ] [ 3DEF  ]
 [ 4GHI  ] [ 5JKL ] [ 6MNO  ]
 [ 7PQRS ] [ 8TUV ] [ 9WXYZ ]
           [ 0空  ]


注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0和空格字符,即按两次0输入空格。


你需要对于给定的按键组合,给出该组合对应的文本。


输入格式:


输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。


输出格式:


在一行中输出该按键组合对应的文本。


输入样例:


22 5555 22 666 00 88 888 7777 4444 666 44


结尾无空行


输出样例:


ALAN TURING


结尾无空行


#include<iostream>
using namespace std;
int main(){
    string s[10];
    s[0]=" ";
    s[1]=",.?!";s[2]="ABC";s[3]="DEF";
    s[4]="GHI";s[5]="JKL";s[6]="MNO";
    s[7]="PQRS";s[8]="TUV";s[9]="WXYZ";
    string temp,result="";
    while(cin>>temp){
        int len=temp.size();
        int len2=s[temp[0]-'0'].size()+1;
        while(len>len2) len-=len2;
        if(len==1){
            result=temp[0];
            cout<<result;
        }
        else{
            result=s[temp[0]-'0'][len-2];
            cout<<result;
        }
    }
    return 0;
}
目录
相关文章
|
6月前
|
Android开发
在安卓手机上,软键盘弹起来之后,文本框被遮挡
在安卓手机上,软键盘弹起来之后,文本框被遮挡
58 1
再学一道算法题: 九宫格输入法
再学一道算法题: 九宫格输入法
植物大战僵尸全屏奶油
植物大战僵尸全屏奶油
207 0
游戏中的字体在手机端不显示粗体,怎么办?
如果你在使用“微信小游戏制作工具”做游戏的话,那么这个问题是你必将遇到的,我明明在游戏中设置了文字为粗体,但是最终在手机上显示的时候,却是正常体,这时候该怎么办?
151 0
|
自然语言处理 C++
制作有道词典——标题栏
制作有道词典——标题栏
制作有道词典——标题栏
|
C# C++ Windows
C# TSF 输入法的获取
原文 C# TSF 输入法的获取 起因: 「添雨跟打器」中存在一个问题。在 windows 8/10 里面,输入法就获取不到了。我一直没有去管这样的问题。但是也大致知道,可能是 TSF 架构的问题。
2234 0
|
API C# Windows
C# 输入法
原文:C# 输入法 C# 输入法     虽说输入法不是什么新事物,各种语言版本都有,不过在C#不常见;这就会给人一种误会:C#不能做!其实C#能不能做呢,答案是肯定的——三种方式都行:IMM、TSF以及外挂式。
981 0