zoukankan      html  css  js  c++  java
  • C语言编程练习9:破译邮件

    题目描述

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

    输入

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

    输出

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

    样例输入

    4
    9#23-9-12-12#19-20-5-1-12#1-20#12-5-1-19-20#15-14-5#10-5-23-5-12
    1-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-19
    1-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-14
    7-15-15-4#12-21-3-11

    样例输出

    I WILL STEAL AT LEAST ONE JEWEL
    AND LEAVE THE MUSEUM IN T MINUTES
    AFTER THE OPENING OF THE EXHIBITION
    GOOD LUCK
    #include <stdio.h>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    int main()
    {	
    	int n;
    	cin >> n;
    	getchar();
    	while(n--)
    	{
    		char s1[105];
    		cin >> s1;
    		int l = strlen(s1);
    		for(int i = 0;i<l;i++)
    		{
    			int num=0;
    			int flag=0;//判断是否需要输出
    			while(s1[i]>='0'&&s1[i]<='9')
    			{
    				flag=1;
    				num=num*10+s1[i]-48;
    				i++;
    			}
    			if(flag)
    			{
    				printf("%c",num+'A'-1);//转化为字母输出
    			}
    			
    			if(s1[i]=='#')printf(" ");//空格转化
    		}
    		cout << endl;
    
    	}
    	
    	
    	return 0;
    }
    
  • 相关阅读:
    常用的服务器简介
    PHP Proxy 负载均衡技术
    Hexo 博客Next 搭建与美化主题
    Tomcat PUT方法任意文件上传(CVE-2017-12615)
    哈希爆破神器Hashcat的用法
    内网转发随想
    Oauth2.0认证
    Github搜索语法
    记一次挖矿木马清除过程
    利用ICMP进行命令控制和隧道传输
  • 原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14310603.html
Copyright © 2011-2022 走看看