The Seven Percent Solution
| The Seven Percent Solution | 
| Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) | 
| Total Submission(s): 466 Accepted Submission(s): 307 | 
| 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 <iostream> #include "stdio.h" #include "string.h" using namespace std; int main() { char c[1000]; while(gets(c)) { if(c[0]=='#')break; for(int i = 0 ; i < strlen(c) ; i++) { if(c[i] ==' ' ) cout<<"%20"; else if(c[i]=='!') cout<<"%21"; else if(c[i]=='$') cout<<"%24"; else if(c[i]=='%') cout<<"%25"; else if(c[i]=='(') cout<<"%28"; else if(c[i]==')') cout<<"%29"; else if(c[i]=='*') cout<<"%2a"; else cout<<c[i]; } cout<<endl; } return 0; }
posted on 2011-07-23 16:28 NewPanderKing 阅读(1067) 评论(0) 收藏 举报
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号 
