小弟求一个模拟手机按键的C++程序!!急求!!!谢谢各位老师!!!详细需求见内。

realbilly2002 2005-10-22 11:12:35
要求用数组和指针实现,键盘数字键1至0分别代表字母,如数字1代表a,b,c,A,B,C 数字2代表d,e,f,D,E,F 数字3代表g,h,i,G,H,I 以此类推一直到0。然后根据这个输入一串数字按回车显示Very good!打个比方如果输入1111223333按回车后就应该显示AeG。不能用ASCII码,谢谢各位老师了。我的邮箱是realbilly2002@sina.com
...全文
201 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphakiller 2005-10-22
  • 打赏
  • 举报
回复
呵呵,我就是写手机程序的,恰好是写输入法的,你说的这种情况类似于一个简单的Mutitap ABC的输入法

如果要解决你的问题
首先,需要配置key0~key9的10张表,例如const u16 key1 = {'a','b','c','A','B','C'};
其次,需要有一个input的实例,里面有keyIndex/*记录输入的是什么键*/, keyCount/*按键几次*/ , bTimeOut/*是否time out*/
最后,需要一个timer,当按键的时候start timer,timeout的时候stop timer,在没有time out的时候按键则利用keyIndex和keyCount查找key0~key9表中的字符.

以上就是大致的思路,实现起来应该不是很难

K 2005-10-22
  • 打赏
  • 举报
回复
不能用ASCII码??
做一个表,根据每个字符重复的次数查表
qhfu 2005-10-22
  • 打赏
  • 举报
回复
做一个两级影射表。
第一维 1-0 十个元素,第二维六个元素。
用一个2维数组表示就可以了。
输入一个数组(都是由数字组成的),扫描他,先找出出现的数字,然后再判断连续出现几个。就可以找出对应的字母。接着继续往下扫描。  
不过问题是如果出现 111111 到底算是C 还是两个c,或者三个b,或者六个a,所以觉得这个想法不大可行,必须得做出一个分割符来分隔每隔数字串。 
lbing7 2005-10-22
  • 打赏
  • 举报
回复
忘了注意0
lbing7 2005-10-22
  • 打赏
  • 举报
回复
给个思路!近来我总答错题,不知道可行不?
建数组如:
1,键将[a,b,c,A,B,C]初始化进去,然后统计按1的次数!
用次数来寻找对应的字符,其它的一样!

错了,表BS
jsjjms 2005-10-22
  • 打赏
  • 举报
回复
手机上都是制表的。其实很简单:)

动个手写吧。
北极猩猩 2005-10-22
  • 打赏
  • 举报
回复
移到其他技术问题。

楼主,大家给的提示也不少了,如果你在这里等着那程序的话我劝你还是不要等了,自己动手做,没人能替你完成任务。
kahn 2005-10-22
  • 打赏
  • 举报
回复
当然你也可以启动另一个timer用于处理长按键的情况,WIN32下没有长按键消息吧,通过一个timer来处理WM_CHAR消息。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧