String62. Дана строка-предложение на русском языке. Зашифровать ее, выполнив циклическую замену каждой буквы на следующую за ней в алфавите и сохранив при этом регистр букв («А» перейдет в «Б», «а» — в «б», «Б» — в «В», «я» — в «а» и т. д.). Букву «ё» в алфавите не учитывать («е» должна переходить в «ж»). Знаки препинания и пробелы не изменять.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
program String62; var S:String; i:integer; begin Write('S: '); Readln(S); i:=1; while (i<=Length(S)) do begin case ord(S[i]) of 128..158,160..174,224..238: S[i]:=chr(ord(S[i])+1); 159: S[i]:=chr(128); 175: S[i]:=chr(224); 239: S[i]:=chr(160); end; inc(i); end; Writeln(S); end. |
Другие задачи из раздела String можно посмотреть здесь.
тут цифры номерам юникода русских букв не соответствуют и вследствии код совсем не меняет изначальную строку.