发短信

时间限制: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

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

#pragma warning(disable:4786)

#include<iostream>

#include<stdio.h>

#include<string>

#include<cstring>

#include<map>

using namespace std;

map<string,string>m;

map< string , string >::iterator it ;

void init()

{

       m[""] = " " ;

       m[""] = "A" ; m[""] = "B" ; m[""] = "C" ;

       m[""] = "D" ; m[""] = "E" ; m[""] = "F" ;

       m[""] = "G" ; m[""] = "H" ; m[""] = "I" ;

       m[""] = "J" ; m[""] = "K" ; m[""] = "L" ;

       m[""] = "M" ; m[""] = "N" ; m[""] = "O" ;

       m[""] = "P" ; m[""] = "Q" ; m[""] = "R" ; m[""] = "S" ;

       m[""] = "T" ; m[""] = "U" ; m[""] = "V" ;

       m[""] = "W" ; m[""] = "X" ; m[""] = "Y" ; m[""] = "Z" ;

       m[" "] = "" ;

       m["A"] = "" ; m["B"] = "" ; m["C"] = "" ;

       m["D"] = "" ; m["E"] = "" ; m["F"] = "" ;

       m["G"] = "" ; m["H"] = "" ; m["I"] = "" ;

       m["J"] = "" ; m["K"] = "" ; m["L"] = "" ;

       m["M"] = "" ; m["N"] = "" ; m["O"] = "" ;

       m["P"] = "" ; m["Q"] = "" ; m["R"] = "" ; m["S"] = "" ;

       m["T"] = "" ; m["U"] = "" ; m["V"] = "" ;

       m["W"] = "" ; m["X"] = "" ; m["Y"] = "" ; m["Z"] = "" ;

}

void fun(char a[])

{

       it = m.find(a) ;

          if( it != m.end() )

          cout<<it->second<<" ";   

}

void fuu(char a[])

{

it = m.find(a) ;

          if( it != m.end() )

          cout<<it->second;

}

int main()

{

char str[],s[];

init();

int i=,j,k,n;

while( gets(str)!=NULL)

{k=;

if(str[]>='' && str[]<='')//判断输入的是数字还是字符

{n=;

          int x=strlen(str);//把接收到的字符串都转化成单个的短字符串

    for(i=; i<x; i++)

{

if(str[i]!=' ')

{

s[n++]=str[i];

if(i==x-)

{s[n]='\0';fuu(s);}

}

else

{

s[n]='\0';n=;

fuu(s);

}

}

}

else 

{

for(j=;str[j]!='\0';j++)//如果是字符则一个一个的都赋值,一个字符就是一个字符串,包括空格;

{

s[]=str[j];s[]='\0';

fun(s);

}

}

cout<<endl;

}

return ;

}

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. @Value 和 @ConfigurationProperties 获取值的比较

    1.不同点 (1)@ConfigurationProperties(prefix = "person") 功能:批量注入配置文件中的属性 SpEL:不支持表达式 JSR303数据校 ...

  2. Spring Boot 中 Controller 使用

    1.属性配置 2.Controller使用 2.@PathVariable 与 @RequestParam 的区别 (1)@PathVariable (2)@RequestParam 3.@GetMa ...

  3. nyoj阶乘之和

     /*阶乘之和 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 给你一个非负数整数n,推断n是不是一些数(这些数不同意反复使用,且为正数)的阶乘之和, 如9=1! ...

  4. 解决win10鼠标晃动问题

    删除HKEY_CLASSES_ROOTDirectoryBackgroundshellexContextMenuHandlers 下面,除了new以外的文件夹 重启,Ok

  5. 【Oracle】查询字段的长度、类型、精度、注释等信息

    查询数据字典中字段的相关信息 SELECT T .column_name AS column_name, --列名 T .column_type AS column_type, ---字段类型 T . ...

  6. 重要:VC DLL编程

    VC DLL编程 静态链接:每个应用程序使用函数库,必须拥有一份库的备份.多个应用程序运行时,内存中就有多份函数库代码的备份. 动态连接库:多个应用程序可以共享一份函数库的备份. DLL的调用方式:即 ...

  7. nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址

    nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本 ...

  8. 安装到LG手机出错

    [2013-07-10 07:44:31 - txrjsms] ERROR: Application requires API version 11. Device API version is 8 ...

  9. [iOS]过渡动画之高级模仿 airbnb

    注意:我为过渡动画写了两篇文章:第一篇:[iOS]过渡动画之简单模仿系统,主要分析系统简单的动画实现原理,以及讲解坐标系.绝对坐标系.相对坐标系,坐标系转换等知识,为第二篇储备理论基础.最后实现 Ma ...

  10. sleep()和usleep()的使用和区别

    在iOS中  如果 在主线程中用这2个 都会 对 主线程 造成 阻塞 具体区别 如下   Linux 中的 代码 为例 函数名: sleep头文件: #include <windows.h> ...