发短信

时间限制: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. 〖Linux〗Ubuntu13.10中使用虚拟机对MTK手机进行线刷

    最近一个同学把一台MTK手机刷坏了,在我的笔记本电脑上没有WindowsXp操作系统: 而在MTK线刷过程中,最好的刷机系统便是WindowsXP3,于是有了想在Linux中直接开启XP虚拟机来刷机的 ...

  2. 〖Linux〗build sqlite3 for Arm

    Version: sqlite-autoconf-3080100.tar.gz Download: https://www.sqlite.org/download.html 1. toolchains ...

  3. 19、Java访问修饰符

    修饰符 本类 同一个包中的类 子类 其它类 public 可以访问 可以访问 可以访问 可以访问 protected 可以访问 可以访问 可以访问 不能访问 默认 可以访问 可以访问 不能访问 不能访 ...

  4. 生产服务器环境最小化安装后 Centos 6.5优化配置备忘

    生产服务器环境最小化安装后 Centos 6.5优化配置备忘 作者:Memory 发布于:2014-8-13 15:00 Wednesday 服务器 本文 centos 6.5 优化 的项有18处: ...

  5. 用javascript写一个emoji表情插件

    概述 以我们写的这个emoji插件为例,网上已经有一些相关的插件了,但你总感觉有些部分的需求不能被满足(如:可以自行添加新的表情包而不用去改源代码等等) 详细 代码下载:http://www.demo ...

  6. [Animations] 快速上手 iOS10 属性动画

    概述 今天要说的UIViewPropertyAnimator, 是iOS10新的API 详细 代码下载:http://www.demodashi.com/demo/10639.html 基础动画, 核 ...

  7. Swift调用OC和C

    Swift文件:main.swift import Foundation //Swift调用C函数 desc1() //Swift调用OC //拿到OC类 var funcClass = Root() ...

  8. 一些很经典的JavaScript的问题

    1.作用域 (function() { var a = b = 5; })(); console.log(b); 输出:5 陷阱是,在函数表达式中有两个赋值,但a是用关键字var 来声明的,这意味着a ...

  9. iOS开发Xcode8需要注意的那些坑

    现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本, ...

  10. python学习笔记——信号模块signal

    基于python学习笔记——多进程间通信——Linux信号基础的学习基础,进一步学习Python标准库中的signal模块. 尽管signal是python中的模块,但是主要针对UNIX平台(比如Li ...