字符串水题——破译邮件

来源:互联网 发布:手机怎么复制淘宝链接 编辑:程序博客网 时间:2024/05/17 21:39

问题 F: 破译邮件

时间限制: 1 Sec  内存限制: 32 MB
提交: 6  解决: 6
[提交][状态][讨论版]

题目描述

小明收到了一封很奇怪的邮件,里面全是一些符号和数字,但是信上面给出了破译方法,具体方法如下:
(1)将1变为‘A’,2变为‘B’,...,26变为‘Z’;
(2)将‘#’变为一个空格;
(3)忽略‘-’,原始信件中‘-’仅仅用来分割数字。
现请你编程帮助小明破译这封邮件。

输入

输入的第一行为一个整数C,表示测试数据的组数。
接下来C行,每行输入一个待破译的字符串,字符串中只包含数字、‘-’和‘#’,长度不超过100。

输出

对于每组输入,输出破译后的文本。

样例输入

49#23-9-12-12#19-20-5-1-12#1-20#12-5-1-19-20#15-14-5#10-5-23-5-121-14-4#12-5-1-22-5#20-8-5#13-21-19-5-21-13#9-14#20#13-9-14-21-20-5-191-6-20-5-18#20-8-5#15-16-5-14-9-14-7#15-6#20-8-5#5-24-8-9-2-9-20-9-15-147-15-15-4#12-21-3-11

样例输出

I WILL STEAL AT LEAST ONE JEWELAND LEAVE THE MUSEUM IN T MINUTESAFTER THE OPENING OF THE EXHIBITIONGOOD LUCK

提示


分析:这个题用流做不了,因为流里面是一堆字符不是字符串很不好处理,所以就朴素的做,瞎搞就好了。


#include <bits/stdc++.h> using namespace std;   int main(){    string a;     int t;    cin>>t;     getchar();     while(t--)    {        getline(cin,a);          for(int i=0;i<a.length();i++)        {             if(a[i]=='#')            {                cout<<' ';            }             if(isdigit(a[i]))            {                if(isdigit(a[i+1]))                {                    printf("%c",(a[i]-48)*10+a[i+1]-48 +64);                    i++;                }                 else                {                    printf("%c",a[i]+16);                }            }          }          cout<<endl;    }      return 0;}

0 0
原创粉丝点击