#include <stdio.h>
int main()
{
int i,j,len1,len2,t,k=0;
char a[10][6]={"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ","0 "};
char b[1000];
gets(b);
len2=strlen(b);
for(i=0;i<len2;i++)
{
t=b[i]-'0';
len1=strlen(a[t]);
while(b[i]!=' '&&b[i]!='\0')
{
i++;
k++;
}
j=k%len1==0?len1-1:k%len1-1;
printf("%c",a[t][j]);
k=0;
}
printf("\n");
return 0;
}
pta九宫格输入法怎么理解这个代码
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2023-12-15 23:53关注
gets(b); 这里读取输入的内容 然后for(i=0;i<len2;i++) 这是遍历每一个输入的数字放入 b[i] t=b[i]-'0';这里t是那个数字对应的数字下标 然后在char a[10][6]={"0 ","1,.?!","2ABC","3DEF","4GHI","5JKL","6MNO","7PQRS","8TUV","9WXYZ","0 "};里面查找 如果是0,那么就是0,如果是3,就说明是2ABC,以此类推 while(b[i]!=' '&&b[i]!='\0') 这里是看按了几次,直到结尾或者空格,从而区分出按下的是哪一个,比如说前面按下了2,进入2ABC这个键,这里按下2次,说明是A这个字母 printf("%c",a[t][j]); 输出这个字符 所以这个程序就是根据一串对手机键盘的按键,得到要输入的那句话。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
- ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
- ¥15 远程安装一下vasp
- ¥15 自己做的代码上传图片时,报错
- ¥15 Lingo线性规划模型怎么搭建
- ¥15 关于#python#的问题,请各位专家解答!区间型正向化
- ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
- ¥50 comsol温度场仿真无法模拟微米级激光光斑
- ¥15 上传图片时提交的存储类型
- ¥15 VB.NET如何绘制倾斜的椭圆