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. u-boot之内核是怎么启动的

    在u-boot之start_armboot函数分析已经分析过了整个程序框架,但只是说了下什么时候运行内核,并没有具体说明是怎么执行内核的.内核启动分以下几个步骤说明: 1.启动参数bootcmd=na ...

  2. 2.git使用之git fetch和git push的区别

    . git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master git log -p master..origin/master git ...

  3. C# 判断ip地址是否正确

    最后要用一方法判断ip地址是否正确,直接用.Net现成的类,方法如下: string ipStr="192.168.222.333"; IPAddress ip; if(IPAdd ...

  4. 09. pt-fingerprint

    vim pt-fingerprint.txt select name, password from user where id=5;select name, password from user wh ...

  5. RPDU

    RPDU(Remote Power Distribution Unit) 又称网络电源控制系统.远程电源管理系统.智能PDU.智能电源分配系统,是由傲视恒安科技(北京)有限公司自主研发生产并在全国范围 ...

  6. netstat 查看端口命令

    查看特定端口是否启动 netstat -lnp |

  7. XSS绕过速查表

    0x00 目录 0x01 常规插入及其绕过 1 Script 标签 绕过进行一次移除操作: <scr<script>ipt>alert("XSS")< ...

  8. 2017/2/16:自己ajax+json习惯性写法 代码拼接的写法 +json用post提交乱码的原因

    1.先导入jquery的包 2.ajax的写法跟注意点 返回一个list的写法 代码拼接写法: html层: 2.script处 4:在你前面传递参数的时候没有遇到乱码问题的情况下,你使用json并且 ...

  9. 类似 QQ 音乐底部常驻播放栏(AVQueuePlayer)

    一开始搞了个基类,但是这样所有类都要继承它才可以.后来考虑把他加到 window 上.但是在 appdelegate 中没有办法可以加到上面,最后在 keyWindow 的rootViewContro ...

  10. BP神经网络的参数改进参考?

    参考文献:黄巧巧. 基于BP神经网络的手写数字识别系统研究[D].华中师范大学,2009.  47-52 BP神经网络的缺陷:收敛速度慢和局部极小点的问题 使用的改进方案有 1. 学习速率(learn ...