发短信

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只
需要按一次数字键2,按键顺序记为2;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键顺序记为22;同理:字母'C’需要连续按3次数字键2,按键顺序记为222。通过这种方法,我们用手机10多个键就能输入26个英文字母。
现在你的任务是统计一段英文用手机输入的按键顺序,同样,你也要能把按键顺序翻译成相应的英文内容。
为了使问题简化,我们假设内容只有大写英文字母和空格。

输入
有多组测试数据
每组测试数据占一行,有两种情况:
(1)短信内容(只含有若干个空格和大写字母,不超过1000个字符)
(2)短信按键顺序(只含有若干空格和数字,其中第一个肯定是数字,不超过1000个字符)
输出
对于每组测试数据:
如果是短信内容,输出每个字母的按键顺序,每个字母的按键顺序用空格隔开
如果是按键顺序,输出它代表的内容
样例输入
I LOVE YOU
HELLO WORLD
444 0 555 666 888 33 0 999 666 88
44 33 555 555 666 0 9 666 777 555 3
样例输出
444 0 555 666 888 33 0 999 666 88
44 33 555 555 666 0 9 666 777 555 3
I LOVE YOU
HELLO WORLD
直接模拟!
AC码:
#include<stdio.h>
#include<string.h>
int main()
{int i,a,b,j,count;char str[1005],ch;while(gets(str)){if((str[0]>='A')&&(str[0]<='Z')||str[0]==' '){for(i=0;str[i]!='\0';i++){if(str[i]==' '){printf("0 ");}else if(str[i]>='A'&&str[i]<='R'){a=(str[i]-'A')%3+1;// a为按键次数b=(str[i]-'A')/3+2;// b为按的数字for(j=1;j<=a;j++)printf("%d",b);printf(" ");}else if(str[i]=='S')printf("7777 ");else if(str[i]>='T'&&str[i]<='Y'){a=(str[i]-'T')%3+1; // a为按键次数b=(str[i]-'T')/3+8; // b为按的数字for(j=1;j<=a;j++)printf("%d",b);printf(" ");}else if(str[i]=='Z')printf("9999 ");}printf("\n");}else{for(i=0;str[i]!='\0';i++){if(str[i]==' ')continue;if(str[i]=='0')printf(" ");if(str[i]>='2'&&str[i]<='7'){count=0;a=str[i]-'0';while(str[i]>='0'&&str[i]<='7'){count++;i++;}ch=(a-2)*3+'A'+(count-1);printf("%c",ch);}else if(str[i]>='8'&&str[i]<='9'){count=0;a=str[i]-'8';while(str[i]>='8'&&str[i]<='9'){count++;i++;}ch=a*3+'T'+(count-1);printf("%c",ch);}}printf("\n");}memset(str,0,sizeof(str));}return 0;
}

NYOJ 643 发短信相关推荐

  1. NYOJ 643 发短信 暴力求解

    发短信 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只 需要按一次数字键2,按键顺序记为2:如果要输入字 ...

  2. java 短信平台_Java通过SMS短信平台实现发短信功能

    本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese. ...

  3. 刚刚入手一台G11,发短信是老是出现“发送自HTC手机”字样

    刚刚入手一台G11,发短信是老是出现"发送自HTC手机"字样 我的手机:HTC,G11 Incredible S 问题类型:系统设置 怎么把它取消了? 最佳答案 进入短信 -> ...

  4. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 简介 iOS中的很多小功能都 ...

  5. 原生js实现发短信~chat

    首先给大家说一声抱歉,小编最近和女朋友闹矛盾,断更了一周呀 唉,实在是罪过呀,不远两千多公里从北京跑到广州,哄女朋友开心,我也没谁了 宝宝心里苦,宝宝就是不说. 好了,言归正传,咱们回到就是实现发短信 ...

  6. 常用小功能(打电话、发短信、发邮件)

    打电话-⽅方法1 ● 最简单最直接的⽅方式:直接跳到拨号界⾯面 NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApp ...

  7. python软件是免费的吗-谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信...

    前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...

  8. 利用飞信给自己发短信的shell脚本

    利用飞信给自己发短信的shell脚本翻译自一个python脚本因为openwrt要装python太大了.所以用了两天非工作时间 翻译成了 shell脚本 .测试可用. http://dl.dbank. ...

  9. android通话记录列表apk,android打电话,发短信,获取通讯录、通话记录、短信记录...

    [实例简介] 代码实现android打电话,发短信,获取通讯录.通话记录.短信记录 [实例截图] [核心代码] 19287b5f-b70c-4210-ab04-9d24ddd60788 └── cal ...

最新文章

  1. java capacity_关于Java中StringBuffer的capacity问题
  2. mysql字符集排序规则_Mysql 字符集及排序规则
  3. JDK源码解析之 Java.lang.Object
  4. 魅族17系列正式发布:17年梦想之作,3699元起
  5. JavaSE学习总结(八)—— 异常处理(Exception)
  6. 没有计算机基础可以学python-零基础,没有编程和计算机基础,究竟该怎么自学python?...
  7. free 显示系统内存的使用情况
  8. blender 命令行渲染
  9. “手把手教你设计”—12个最佳手机APP界面设计教程
  10. 对于同一个数据库,Log shipping和log backup不可以同时运行
  11. GC日志详解[乐乐独记]
  12. Ubuntu burg
  13. 2022全新好玩的恶搞屁声音小程序源码+UI不错
  14. 我对计算机网络技术的理解,计算机网络技术教学总结
  15. 蓝屏代码: DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS bootsafe64.sys
  16. 前端ui框架layui——layer弹出层-弹出框方法
  17. python画魔法阵_半年了,这画我已经找不出什么出错的地方了,诚心请大佬们指点,我如何能更进一步?...
  18. bga封装扇出过孔_手把手教你BGA元器件如何扇出?-EDA/PCB-与非网
  19. java 小数点左移_规格化数尾数左移解决什么问题
  20. netmask的作用

热门文章

  1. 神策数据与达观数据达成战略合作,共拓大数据服务市场
  2. git bash的安装与配置
  3. QQ 相册后台存储架构重构与跨 IDC 容灾实践
  4. Word转换英文为大写小写的方法
  5. 工作的未来:敏捷人士瑞典大会上午议程回顾
  6. c编程:输入一个数字n,则n代表n行,每行输入2个数字a,b计算每行的a+b问题。
  7. php 基础函数写法,字符串,常用函数
  8. android 提高性能点
  9. VBoxManage命令详解
  10. Prism安装、MVVM基础概念及一个简单的样例