发短信

时间限制:1000 ms  |            内存限制:65535 KB
难度:3  
       
描述

下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只
需要按一次数字键2,按键顺序记为2;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键顺序记为22;同理:字母'C’需要连续按3次数字键2,按键顺序记为222。通过这种方法,我们用手机10多个键就能输入26个英文字母。
现在你的任务是统计一段英文用手机输入的按键顺序,同样,你也要能把按键顺序翻译成相应的英文内容。
为了使问题简化,我们假设内容只有大写英文字母和空格。
输入         有多组测试数据
每组测试数据占一行,有两种情况:
(1)短信内容(只含有若干个空格和大写字母,不超过1000个字符)
(2)短信按键顺序(只含有若干空格和数字,其中第一个肯定是数字,不超过1000个字符)         输出         对于每组测试数据:
如果是短信内容,输出每个字母的按键顺序,每个字母的按键顺序用空格隔开
如果是按键顺序,输出它代表的内容
  样例输入                    
  1. I LOVE YOU
  2. HELLO WORLD
  3. 444 0 555 666 888 33 0 999 666 88
  4. 44 33 555 555 666 0 9 666 777 555 3

样例输出

  1. 444 0 555 666 888 33 0 999 666 88
  2. 44 33 555 555 666 0 9 666 777 555 3
  3. I LOVE YOU
  4. HELLO WORLD

编译代码:刚学c++,借用的库:

  1. #pragma warning(disable:4786)
  2.  
  3. #include<iostream>
  4.  
  5. #include<stdio.h>
  6.  
  7. #include<string>
  8.  
  9. #include<cstring>
  10.  
  11. #include<map>
  12.  
  13. using namespace std;
  14.  
  15. map<string,string>m;
  16.  
  17. map< string , string >::iterator it ;
  18.  
  19. void init()
  20.  
  21. {
  22.  
  23. m[""] = " " ;
  24.  
  25. m[""] = "A" ; m[""] = "B" ; m[""] = "C" ;
  26.  
  27. m[""] = "D" ; m[""] = "E" ; m[""] = "F" ;
  28.  
  29. m[""] = "G" ; m[""] = "H" ; m[""] = "I" ;
  30.  
  31. m[""] = "J" ; m[""] = "K" ; m[""] = "L" ;
  32.  
  33. m[""] = "M" ; m[""] = "N" ; m[""] = "O" ;
  34.  
  35. m[""] = "P" ; m[""] = "Q" ; m[""] = "R" ; m[""] = "S" ;
  36.  
  37. m[""] = "T" ; m[""] = "U" ; m[""] = "V" ;
  38.  
  39. m[""] = "W" ; m[""] = "X" ; m[""] = "Y" ; m[""] = "Z" ;
  40.  
  41. m[" "] = "" ;
  42.  
  43. m["A"] = "" ; m["B"] = "" ; m["C"] = "" ;
  44.  
  45. m["D"] = "" ; m["E"] = "" ; m["F"] = "" ;
  46.  
  47. m["G"] = "" ; m["H"] = "" ; m["I"] = "" ;
  48.  
  49. m["J"] = "" ; m["K"] = "" ; m["L"] = "" ;
  50.  
  51. m["M"] = "" ; m["N"] = "" ; m["O"] = "" ;
  52.  
  53. m["P"] = "" ; m["Q"] = "" ; m["R"] = "" ; m["S"] = "" ;
  54.  
  55. m["T"] = "" ; m["U"] = "" ; m["V"] = "" ;
  56.  
  57. m["W"] = "" ; m["X"] = "" ; m["Y"] = "" ; m["Z"] = "" ;
  58.  
  59. }
  60.  
  61. void fun(char a[])
  62.  
  63. {
  64.  
  65. it = m.find(a) ;
  66.  
  67. if( it != m.end() )
  68.  
  69. cout<<it->second<<" ";
  70.  
  71. }
  72.  
  73. void fuu(char a[])
  74.  
  75. {
  76.  
  77. it = m.find(a) ;
  78.  
  79. if( it != m.end() )
  80.  
  81. cout<<it->second;
  82.  
  83. }
  84.  
  85. int main()
  86.  
  87. {
  88.  
  89. char str[],s[];
  90.  
  91. init();
  92.  
  93. int i=,j,k,n;
  94.  
  95. while( gets(str)!=NULL)
  96.  
  97. {k=;
  98.  
  99. if(str[]>='' && str[]<='')//判断输入的是数字还是字符
  100.  
  101. {n=;
  102.  
  103. int x=strlen(str);//把接收到的字符串都转化成单个的短字符串
  104.  
  105. for(i=; i<x; i++)
  106.  
  107. {
  108.  
  109. if(str[i]!=' ')
  110.  
  111. {
  112.  
  113. s[n++]=str[i];
  114.  
  115. if(i==x-)
  116.  
  117. {s[n]='\0';fuu(s);}
  118.  
  119. }
  120.  
  121. else
  122.  
  123. {
  124.  
  125. s[n]='\0';n=;
  126.  
  127. fuu(s);
  128.  
  129. }
  130.  
  131. }
  132.  
  133. }
  134.  
  135. else
  136.  
  137. {
  138.  
  139. for(j=;str[j]!='\0';j++)//如果是字符则一个一个的都赋值,一个字符就是一个字符串,包括空格;
  140.  
  141. {
  142.  
  143. s[]=str[j];s[]='\0';
  144.  
  145. fun(s);
  146.  
  147. }
  148.  
  149. }
  150.  
  151. cout<<endl;
  152.  
  153. }
  154.  
  155. return ;
  156.  
  157. }

ny643 发短信 stl库 map函数的更多相关文章

  1. PhpSms 稳定可靠的php短信发送库

    可能是目前最聪明.优雅的PHP短信发送库了.从此不再为各种原因造成的个别短信发送失败而烦忧! phpsms的任务均衡调度功能由toplan/task-balancer提供. GitHub地址:http ...

  2. iOS中如何切换到发短信、打电话、发邮件

    我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...

  3. iOS开发中打电话发短信等功能的实现

    在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...

  4. [stm32] SIM808模块之发短信\GPS\TCP\HTTP研究

    SIM8008是四频模块,全球可用.含有TTL电平接口等接口,能够实现发短信.打电话.GPRS传输数据.GPS等功能.[正版资料请找beautifulzzzz·博客园] 一些细节: >> ...

  5. ios 设置亮度、声音;调用发短信、邮件、打电话

    一,设置亮度 [[UIScreen mainScreen] setBrightness:0.5];//0.0~1.0 二,设置声音 1,添加 MediaPlayer.framework 框架 2,在需 ...

  6. PHP发短信 PEAR 包:Services_Sms

    PHP发短信 PEAR 包:Services_Sms 对于这种第三方库,PHP官方称之为PEAR,需要按照PEAR标准开发(标准URI). PEAR的优势:一键安装到php/lib/php目录,req ...

  7. 打电话、发短信、web以及发邮件

    #import "ViewController.h" #import <MessageUI/MessageUI.h> //导入信息UI库 @interface View ...

  8. iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信

    一.Info.plist常见的设置 1.建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 ...

  9. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

随机推荐

  1. FFmpeg源码结构图 - 编码

    ===================================================== FFmpeg的库函数源码分析文章列表: [架构图] FFmpeg源码结构图 - 解码 FFm ...

  2. 动态布局中RadioGroup的RadioButton有时候不相互排斥的原因

    近期在做一个答题类的模块,有单选.简答.调查问卷等,我是用动态布局的方式生成答题项的.在弄单选的时候遇到一个比較奇葩的问题,在代码中生成RadioGroup和RadioButton的时候.会发现不能相 ...

  3. oracle 批量更新之update case when then

      oracle 批量更新之update case when then CreationTime--2018年8月7日15点51分 Author:Marydon 1.情景描述 根据表中同一字段不同情况 ...

  4. 科普:TLS、SSL、HTTPS以及证书(转)

    最近在研究基于ssl的传输加密,涉及到了key和证书相关的话题,走了不少弯路,现在总结一下做个备忘 不少人可能听过其中的超过3个名词,但它们究竟有什么关联呢? TLS是 传输层安全协议(Transpo ...

  5. Java设计模式中的单例模式

    有时候在实际项目的开发中,我们会碰到这样一种情况,该类只允许存在一个实例化的对象,不允许存在一个以上的实例化对象,我们将这种情况称为Java设计模式中的单例模式.设计单例模式主要采用了Java的pri ...

  6. UpdatePanel的用法详解

    摘自:http://www.cnblogs.com/shangxia/articles/2281782.html 一.UpdatePanel的结构 <asp:ScriptManager ID=& ...

  7. 入门Nginx

    一.正向代理和反向代理 正向代理举例:翻越万里长城去游览墙外的景色 反向代理举例:负载均衡 正向代理和反向代理涉及三个主体: 请求方 代理 被请求方 正向代理中,代理跟请求方是一家子,请求方说要啥,代 ...

  8. 简述Android触摸屏手势识别

    很多时候,利用触摸屏的Fling.Scroll等Gesture(手势)操作来操作会使得应用程序的用户体验大大提升,比如用Scroll手势在 浏览器中滚屏,用Fling在阅读器中翻页等.在Android ...

  9. SVN 使用学习记录

    一.基本SVN操作 安装了SVN之后,在本机上点击右键,就能够看到如下信息: 1.建立SVN Repository 下面来建立一个SVN Repository.这个文件夹是同步用的,你可以放在本机的任 ...

  10. Linux命令-终止进程命令:kill

    kill -l 查看进程信号 常用信号 例如: 例子参见:Linux命令-查看进程命令:pstree