e-olymp 3020. Семь решений в процентах

Задача

Семь решений в процентах

Универсальные идентификаторы ресурсов (или URI) являются строками, например, такие как http://icpc.baylor.edu/icpc/, MAILTO: foo@bar.org, ftp://127.0.0.1/pub/linux, или даже просто readme.txt, что, как правило, используется для идентификации ресурсов в Интернете или на локальном компьютере. Некоторые символы зарезервированы в URI, и если зарезервированный символ является частью идентификатора, то он должен быть процент-закодирован, заменив его знаком процента, за которым следуют две шестнадцатеричные цифры, представляющие ASCII код символа. Таблица семи зарезервированные символы и их кодировка приведена ниже. Ваша задача написать программу, которая может выполнять процент-кодирование заданной строки символов.

Символ Кодировка
» » (space) %20
«!» (exclamation point) %21
«$»(dollar sign) %24
«%» (percent sign) %25
«(» (left parenthesis) %28
«)» (right parenthesis) %29
«*» (asterisk) %2a

Входные данные

Входные данные состоят из одной или нескольких строк, каждая из 1-79 символов в отдельной строке, а затем строки, содержащей только «#», что свидетельствует об окончании ввода. Символ «#» используется только как маркер окончания входных данных и не содержится в других местах во входных данных. Строка может содержать пробелы, но не в начале или в конце строки, и никогда не содержит двух или более последовательных пробелов.

Выходные данные

Для каждой строки, полученной на входе, заменить каждое вхождение зарезервированного символа в таблице, приведённой выше, на его процент-кодирование, точно так, как это показано в примере, и вывести результирующую строку в отдельной строке. Ещё раз отметим, что процент-кодирование для символа «*» «%2a» (со строчной «а»), а не «%2A» (с прописной буквой «A»).

Тесты

Входные данные Выходные данные
Happy Joy Joy!
http://icpc.baylor.edu/icpc/
plain_vanilla
(**)
?
the 7% solution
#
Happy%20Joy%20Joy%21
http://icpc.baylor.edu/icpc/
plain_vanilla
%28%2a%2a%29
?
the%207%25%20solution

Код программы

Решение

Создаем цикл в котором с помощью метода replace начиная с «%» (т.к. он будет использоваться в последующих кодировках) заменяем символы на их кодировку в ASCII и печатаем измененную строку. В начале каждого цикла проверяем является ли строка «#».

Ссылки

Ideone
решение e-olymp

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *