Problem Description
Uniform Resource Identifiers (or URIs) are strings like http://icpc.baylor.edu/icpc/, mailto:foo@bar.org, ftp://127.0.0.1/pub/linux, or even just readme.txt that are used to identify a resource, usually on the Internet or a local computer. Certain characters are reserved within URIs, and if a reserved character is part of an identifier then it must be percent-encoded by replacing it with a percent sign followed by two hexadecimal digits representing the ASCII code of the character. A table of seven reserved characters and their encodings is shown below. Your job is to write a program that can percent-encode a string of characters.

Character  Encoding
" " (space)  %20
"!" (exclamation point)  %21
"$" (dollar sign)  %24
"%" (percent sign)  %25
"(" (left parenthesis)  %28
")" (right parenthesis)  %29
"*" (asterisk)  %2a

 

Input
The input consists of one or more strings, each 1–79 characters
long and on a line by itself, followed by a line containing only "#"
that signals the end of the input. The character "#" is used only as an
end-of-input marker and will not appear anywhere else in the input. A
string may contain spaces, but not at the beginning or end of the
string, and there will never be two or more consecutive spaces.
 

Output
For each input string, replace every occurrence of a reserved
character in the table above by its percent-encoding, exactly as shown,
and output the resulting string on a line by itself. Note that the
percent-encoding for an asterisk is %2a (with a lowercase "a") rather
than %2A (with an uppercase "A").
 

Sample Input
Happy Joy Joy!
http://icpc.baylor.edu/icpc/
plain_vanilla
(**)
?
the 7% solution
#
 

Sample Output
Happy%20Joy%20Joy%21
http://icpc.baylor.edu/icpc/
plain_vanilla
%28%2a%2a%29
?
the%207%25%20solution
 

#include<stdio.h>
void main()
{
    char a[1000];
    int n;
    while(1)
    {
        gets(a);
        //getchar();
        if(a[0]=='#')
            return;
        for(int j=0;a[j]!='\0';j++);
        j++; n=j;
        for(int i=0;a[i]!='\0';i++)
        {
            switch(a[i])
            {
                case ' ' :
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='0';
                    i=i+2;
                    j=n=n+2;
                    break;
                case '!':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='1';
                    i=i+2;
                    j=n=n+2;
                    break;
                case '$':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='4';
                    i=i+2;
                    j=n=n+2;
                    break;
                case '%':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='5';
                    i=i+2;
                    j=n=n+2;
                    break;
                case '(':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='8';
                    i=i+2;
                    j=n=n+2;
                    break;
                case ')':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='9';
                    i=i+2;
                    j=n=n+2;
                    break;
                case '*':
                    for(;j>i;j--)
                        a[j+2]=a[j];
                    a[i]='%';
                    a[i+1]='2';
                    a[i+2]='a';
                    i=i+2;
                    j=n=n+2;
                    break;
            }
        }
        printf("%s\n",a);
    }
}

The Seven Percent Solution的更多相关文章

  1. HDUOJ-------2719The Seven Percent Solution

    The Seven Percent Solution Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  2. zoj 2932 The Seven Percent Solution

    The Seven Percent Solution Time Limit: 2 Seconds      Memory Limit: 65536 KB Uniform Resource Identi ...

  3. POJ 3650:The Seven Percent Solution

    The Seven Percent Solution Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7684   Accep ...

  4. HDU 2719 The Seven Percent Solution

    #include <cstdio> #include <cstring> int main() { ]; ]!='#') { ; while (i<strlen(s)) ...

  5. HDU 2719 The Seven Percent Solution (水题。。。)

    题意:把字符串中的一些特殊符号用给定的字符串代替. 析:没的说. 代码如下: #include <iostream> #include <cstdio> #include &l ...

  6. HDU题解索引

    HDU 1000 A + B Problem  I/O HDU 1001 Sum Problem  数学 HDU 1002 A + B Problem II  高精度加法 HDU 1003 Maxsu ...

  7. Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...

  8. Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

    Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...

  9. Windows 10 部署Enterprise Solution 5.5

    Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...

随机推荐

  1. 758B Blown Garland

    B. Blown Garland time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  2. hisat2+stringtie+ballgown

    hisat2+stringtie+ballgown Posted on 2016年11月25日 早在去年九月,我就写个博文说 RNA-seq流程需要进化啦!http://www.bio-info-tr ...

  3. sqli-labs:7,导入导出;8-10 延时注入

    1,Load_file()导出文件 使用条件: A.必须有权限读取并且文件必须完全可读(and (select count(*) from mysql.user)>0/* 如果结果返回正常,说明 ...

  4. activiti 清库脚本(转)

    在使用activiti 的时候会经常遇到需要清空数据库中的数据,因此本文重点讲解如何解决该问题. 再删除数据的时候,需要注意有主外键约束的问题?下面罗列的DDL可以结合自身的业务需求进行灵活改造. D ...

  5. SpringMVC 学习 八 SSM环境搭建(一) web.xml配置

    第一步:导入jar包 注意包的兼容性,以后采用maven会好很多 第二步:配置web.xml 在web.xml中,主要的配置内容有以下几点 (1)spring容器配置文件的位置 <!-- spr ...

  6. tms web core 与 kbmmw 第一次亲密接触

    最近,tms 经过1年多,集合了数十名高手大牛,开发出了一个跨时代的产品,就是tms web core. 具体的介绍详见官网,https://www.tmssoftware.com/site/tmsw ...

  7. socketserver实例化过程

    一.创建server对象时__init__的执行 找继承中的__init__ 这是ThreadingMixIn类中的方法 这是TCPServer类中的方法(父类BaserServer中还会用到fini ...

  8. js-day02

    1.数据类型转换2.函数3.分支结构*******************************1.数据类型转换 数据类型:number,string,boolean,null,undefined ...

  9. 2018.11.01 loj#2319. 「NOIP2017」列队(线段树)

    传送门 唉突然回忆起去年去noipnoipnoip提高组试水然后省二滚粗的悲惨经历... 往事不堪回首. 所以说考场上真的有debuffdebuffdebuff啊!!!虽然当时我也不会权值线段树 这道 ...

  10. 2018.10.31 vijos1052贾老二算算术(高斯消元)

    传送门 高斯消元模板题. 写的时候反了sbsbsb错误消元的时候除数和被除数反了. 所以把板子贴上来压压惊. 代码: #include<bits/stdc++.h> using names ...