The Seven Percent Solution
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 |
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! |
Sample Output
Happy%20Joy%20Joy%21 |
#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的更多相关文章
- HDUOJ-------2719The Seven Percent Solution
The Seven Percent Solution Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- zoj 2932 The Seven Percent Solution
The Seven Percent Solution Time Limit: 2 Seconds Memory Limit: 65536 KB Uniform Resource Identi ...
- POJ 3650:The Seven Percent Solution
The Seven Percent Solution Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7684 Accep ...
- HDU 2719 The Seven Percent Solution
#include <cstdio> #include <cstring> int main() { ]; ]!='#') { ; while (i<strlen(s)) ...
- HDU 2719 The Seven Percent Solution (水题。。。)
题意:把字符串中的一些特殊符号用给定的字符串代替. 析:没的说. 代码如下: #include <iostream> #include <cstdio> #include &l ...
- HDU题解索引
HDU 1000 A + B Problem I/O HDU 1001 Sum Problem 数学 HDU 1002 A + B Problem II 高精度加法 HDU 1003 Maxsu ...
- 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 数据库 ...
- Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架
Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...
- Windows 10 部署Enterprise Solution 5.5
Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...
随机推荐
- Linux移植之移植步骤
在这里总结一下我在移植Linux2.6.22.6内核过程时的步骤.移植成功后最终能挂接做好的根文件系统,并且启动第一个init程序.移植的步骤如下: 1.将网上下载的内核源码文件linux-2.6.2 ...
- Event 事件
事件是建立在委托的基础之上的. http://www.cnblogs.com/lystory/p/5085786.html public class 事件参数 { public 事件参数(string ...
- NServiceBus消息重播
https://docs.particular.net/tutorials/message-replay/ 链接:https://pan.baidu.com/s/1KdWvpfZYZ2wUivkt3B ...
- spring 的 ApplicationContext.getBean(type) 无法获取bean,报错
具体问题请看 https://q.cnblogs.com/q/108101/ 研究了两天: 经过上文中的排除法: 造成问题的原因是要获取的bean 中 有被切入的方法.. 就是可能该类会使用反射生 ...
- 获取input输入框中的值的方法
方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...
- python+selenium—webdriver入门(一)
一.浏览器最大化 二.设置浏览器分辨率大小 三.打印页面title 四.打印URL 五.控制浏览器前进或后退 #!/usr/bin/env python#-*- coding:utf-8 -*- fr ...
- python之web开发“三剑客”
# django import django # flask import flask # tornado import tornado
- JS高级-Date- Error-***Function:
1. Date: API: 1. 8个单位: FullYear Month Date Day Hours Minutes Seconds Milliseconds 2. 每 ...
- 模块and包
一.模块 1.import 加载的模块四个通用类别 1.使用python编写的py文件 2.已被编译为共享库或者DLL或者C\C++的扩展 3.包好一组模块的包 4.使用c编写并连接到python解释 ...
- docker 批量操作容器
docker stop $(sudo docker ps -q)