Перетворення на секретну мову


9

Напишіть якийсь код будь-якою мовою, який вводить рядок типу "Сьогодні великий день" (зауважте, що немає пунктуації) та перетворює його на "Секретна мова". Ось правила для "Секретної мови".

  • a = c, b = d, c = e і так далі (y = a і z = b)
  • розділіть кожне слово пробілом
  • переконайтесь у правильній капіталізації

Приклад:

Input: "Today is a great day"

Output: "Vqfca ku c itgcv fca"

Це популярність-конкурс. Інші користувачі повинні надати бали, шукаючи більшість "до точки", але "унікальний" код.

ЗАДАННЯ: Я шукав незвичайні мови програмування і знайшов мову під назвою Piet ( esolang ). Я закликаю когось написати це мовою.


Чи не повинно бути це x=z, y=a, z=b?
r3mainer

ви маєте рацію "дух" :)
Vik P

3
Я розгубився, поки не зрозумів, що a=cце a -> c.
Джастін

6
Іншими словами, ROT2 це
Тобіас Кіенцлер

2
І rot13, і rot2 - це шифри Цезаря з різними ключами (13 і 2).
Сільвестер

Відповіді:


18

Smalltalk (Smalltalk / X), 29 27 символів

Мені пощастило - це вже в класі String:

'Today is a great day' rot:2
    -> 'Vqfca ku c itgcv fca'

додаючи введення / виведення, це робить це:

(Stdin nextLine rot:2)print

в дусі прихованого прикладу дверної ручки нижче, як щодо:

Parser evaluate:('(Uvfkp pgzvNkpg tqv:2)rtkpvPN' rot:-2)

2
Я ніколи не думав побачити рішення Smalltalk!
Зубна щітка

13

Ruby, затуманене видання (із коментарем!)

Я пропоную прочитати всю річ; Я вважаю це досить кумедним;)

$s='';class Module;def const_missing c

# MAGIC:
$s+="#{c}".split("#{$;}").map{|x|x.ord-8**2}.reduce(:"#{43.chr}").chr;end;end

              # My commentary ;)

ZZZY          # ?
YAYYY         # Oookay; you seem excited
Yaz           # Typo?
Yay           # Better
JEEEEEEF      # You misspelled Jeff's name
LAZZZY        # Yes, you are very lazy
Yax           # Another typo...
LLAMA         # Definitely not completely random at all...
EEEEEEEEEEEEE # Ouch my ears
IIIII         # Ouch stop
ASDFASDFASDF  # I SAID STOP BANGING ON THE KEYBOARD
YUMMY         # ... you eat keyboards?
IIIII         # Stop!
YUMMYY        # Why are you eating your keyboard
LLAMA         # That doesn't make sense :(
VV            # :(
LLAMA         # Could you stop saying that?!
CODEGOLF      # Yay, one of my favorite SE sites! :D
VW            # I don't drive
ASDFASDFASDF  # Why do you keep banging on your keyboard?!?!
EEEEEEEEEEEEE # No
VVV           # Stop
HELLOo        # ...it's a little late for a greeting, isn't it?
DOGS          # ...
OOOOOo        # No, you're not a ghost.
HELLOOOO      # Just a *bit* late.
NNNNNNN       # Huh?
LLAMA         # I said to stop.

print eval$s

Підказки, як це працює (спойлери, наведіть курсор):

Цей код будує рядок і потім оцінює його.

Він використовується const_missingдля побудови символу рядка за символом.

Рядок, який він закінчує, є gets.tr'A-Za-z','C-ZABc-zab'.


У коментарі йдеться як про деякі чати в цьому запитанні: codegolf.stackexchange.com/questions/20914/who-is-this-chatbot/…

13

Постскрипт

Штаб-квартира вимагає, щоб відтепер всі агенти отримували повідомлення лише у друкованому вигляді (оскільки електронні канали виявилися занадто ненадійними), використовуючи спеціальний секретний шрифт. Ви несете відповідальність за включення цієї таємної процедури в пролог нашого програмного забезпечення для друку:

/define_Secret_font {
    /Secret_font
    /Coronet findfont dup 
    /Encoding get 
    aload pop 256 array astore 
    /secret_proc {
        2 copy
        26 getinterval aload pop 
        26 -2 roll 26 array astore
        putinterval
    } def
    dup 65 secret_proc
    dup 97 secret_proc
    exch dup length dict dup
    3 -1 roll {put dup} forall
    exch /Encoding 4 -1 roll put 
    definefont pop
} def

І лише цей шрифт дозволений, наприклад:

define_Secret_font
/Secret_font 36 selectfont
0 841 translate
20 -60 moveto
(Today is a great day) show
20 -120 moveto
(Programming Puzzles & Code Golf) show
showpage

І ось що друкує: введіть тут опис зображення


11

баш

Класичний.

tr A-Za-z C-ZABc-zab

Приклад:

$ tr A-Za-z C-ZABc-zab <<< "Today is a great day"
Vqfca ku c itgcv fca

Я думаю, цитати вам не потрібні.
Марін

@marinus Ти маєш рацію, я його зміню.
daniero

5

DFSORT (програма сортування IBM Mainframe)

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)

Жоден оператор управління SORT не може починатися в першому стовпчику.

Щоб вищезазначене працювало самостійно, вам доведеться змінити таблицю альтернативного перекладу установки за замовчуванням, щоб змістити всі значення для великих і малих літер, обернувшись навколо двох останніх літер.

Не змінюючи таблицю за замовчуванням, потрібно буде оператор ALTSEQ, у якому перераховані всі необхідні пари шестинадцяткових значень (з-шістнадцяткового коду негайно слідує до-шістнадцятковий код, кожна пара шестнадцяткових значень розділена комою):

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)
 ALTSEQ CODE=(xxyy,...)

Отже, щоб отримати великі регістри EBCDIC від A до C і B до D:

КОД ALTSEQ = (C1C3, C2C4)

Звичайно, це було б дуже багато схильних до помилок введення тексту, звичайно, тому ви використовуєте інший крок SORT для створення контрольних карт для цього кроку, і дозвольте SORT читати їх із набору даних, створеного цим новим кроком.

Звичайно, для будь-якої мови, яка підтримує "таблицю перекладу", це так само просто, як змінити таблицю перекладу. Хороша програма COBOL з певною кодовою сторінкою, і це можна зробити в одному рядку коду процедури COBOL (плюс обов'язкові рядки COBOL, які йдуть із усім ... не так багато в даному випадку).

О, 1,80 - це "зображення карти", яке буде містити текст. Напевно, все у верхньому регістрі з першого запуску ...


+1. Використання DFSORT для ROT2 справді унікальне.
Абхіджіт

3

C, 75 байт

main(c){while((c=getchar())>0)putchar(isalpha(c)?(c&224)+((c&31)+2)%26:c);}

Приклад:

$echo "Today is a great day" |./a.out
Vqfca ku c itgcv fca

припустимо, що коефіцієнт EOF -1, ви можете використовувати ~(c=getchar())
побітне значення,

а оскільки в запитанні сказано, що немає пунктуаційних знаків, єдиний не алфавітний символ - це пробіл, тож ви можете перевірити його c-32замість цього, що дозволяє економити 6 символів
user12205

Це змагання популярності, а не код-гольф
Mhmd

Код гольфу антитетичний популярності зараз?
Десті

@ user689 Ви маєте рацію, вибачте, що я уважно не прочитав питання. Оскільки цей код написаний в одному рядку з потрійним оператором і немає int, і навіть передбачено кількість знаків, я якось припустив, що це код гольфу. Вибачте.
користувач12205

3

Пітон

a = list('abcdefghijklmnopqrstuvwxyz')
b = list('yzabcdefghijklmnopqrstuvwx')

c = {}

#generate conversion dictionary

for i in range(len(a)):
    c[a[i]] = b[i]

instring = "the weather is very nice today"

outstring = ""

for i in list(instring):
    try:
        outstring += c[i]
    except:
        outstring += i

print outstring

Вихід:

rfc ucyrfcp gq tcpw lgac rmbyw


(1) Так +3, правда? (2) Ви можете вкласти багато речей, щоб зробити це складніше. (це, здається, тут є тенденцією)
Simon Kuang

b = a[2:] + a[:2]буде менш схильним aдо list
друку

о, і c = dict(zip(a,b)). І це exceptне повинно бути настільки загальним, використовуйтеexcept KeyError
Тобіас Кіенцлер

strконкатенація надто повільна. Створити listі об'єднати їх було б набагато краще.
yegle

3

JavaScript

// setup alphabet and secret rotated alphabet
//
var alpha=' abcdefghijklmnopqrstuvwxyz'
var rotor=' cdefghijklmnopqrstuvwxyzab'
alpha+=alpha.toUpperCase()
rotor+=rotor.toUpperCase()

function encrypt(str) {
 return crypt(str, alpha, rotor)
}

function decrypt(str) {
 return crypt(str, rotor, alpha)
}

// swap position of char from one dictionary to the other
function crypt(msg, d1, d2) {
 var out=''
 var len=str.length
 for(var i=0; i < len; i++) {
  var c = msg.charAt(i)
  var j = d1.indexOf(c)
  out += d2.charAt(j)
 }
 return out
}

3

PHP

Не найкоротший, хоча!

Приклад наживо: https://eval.in/102173

<?php
$str = 'Today is a great day';
$out = implode('', array_map(function ($val) {
  if ($val == ' ') return ' ';
  $c = ord($val)+2;

  if (ctype_lower($val)) {
    if ($c > ord('z')) {
      return chr(ord('`') + ($c - ord('z')));
    }
    return chr($c);
  }
  else {
    if ($c > ord('Z')) {
      return chr(ord('A') + ($c - ord('Z')));
    }
    return chr($c);
  }  
}, str_split($str)));

var_dump($out);

Примітка:

ord('`') = ord('a') - 1

3

TI-Basic (мова, що працює на графічних калькуляторах TI-83)

:ClrHome  
:" abcdefghijklmnopqrstuvwxyz" //all symbols that can be interpreted  
:Ans+Ans+Ans->Str1  
:Menu("crippter","encript",1,"decript",2  
:Lbl 2  
:1->C  
:Lbl 1  
:if not(C)  
:Imput ">",Str2  
:if C  
:Imput "<",Str2  
:length(Str2)->D  
:lenght(Str1)/3->E  
:if not(C)  
:Then  
:randInt(1,E)->B  
:sub(Str1,B,1)->Str3  
:Else  
:inString(Str1,sub(Str2,1,1),1)->B  
":"->Str3  
:For(X,1+C,D  
:inString(Str1,sub(Str2,X,1)->A  
:if not(C  
:A+E-B-X->A  
:if C  
:A+B+X-1->A  
:Str3+sub(Str1,A,1)->Str3  
:End  
:if C  
:sub(Str3,2,D-1)->Str3  
:Pause Str3  
:Goto A  

Це приємне програмне забезпечення для шифрування (для TI-83). Під ти-83 я маю на увазі будь-який калькулятор сімейства ti-83 або ti-84. "->" означає "STORE", доступ до якого є "STO>"


3

Рубін 40 32

p gets.tr("A-XY-Za-xy-z","C-ZA-Bc-za-b") 

оновлення (як видно з рішення danieros bash):

p gets.tr("A-Za-z","C-ZABc-zab")

3

Java, це насправді зрозуміло.

Я знаю, що що завгодно з пробілами та дужками важко працювати з CG, але ось знімок.

    class SecretLanguage {

    public static void main(String[] args) {
    for (String S : args) {
        for (char s : S.toCharArray()) {
        System.out.print((char) (s + ((s < 'y') ? 2 : -24)));
        }
        System.out.print(" ");
    }
    }
}

Існують окремі конкурси на запаморочливий код, але я теж можу зробити смішні.

class S{public static void main(String[]args){for(String str:args){for(char i:(str).toCharArray())System.out.print((char)(i+((i<'y')?2:-24)));System.out.print(" ");}}

2

Javascript

var str = '';
var textInput = 'myString';
for (var i = 0; i < textInput.length; i++) {
    str += textInput.charAt(i).replace(/([a-zA-Z])[^a-zA-Z]*$/, function (a) {
        var c = a.charCodeAt(0);
        switch (c) {
            case 89:
                return 'A'; //Letter Y!
            case 90:
                return 'B'; //Letter Z!
            case 121:
                return 'a'; //Letter y!
            case 122: //Letter z!
                return 'b';
            default:
                return String.fromCharCode(c + 2); //If not y, Y, z, or Z, then just two more from the usual char code
        }
    })
}
console.log(str);

Що з усіма коментарями, мій хом'як може це зрозуміти.


2

Я думаю, що я ROT2 це!

Javascript

function r(a,b){return++b?String.fromCharCode((a<"["?91:123)>(a=a.charCodeAt()+2)?a:a-26):a.replace(/[A-z]/g,r)}

console.log(r('Qccipcr'));

Я думав про щось подібне спочатку, але ніколи не думав про це [A-z]!
Зубна щітка

2

Хаскелл

Ось реалізація на об'єктиві. Я використовую Isoдля представлення ізоморфізму між звичайним текстом і текстом, перетвореним на секретну мову. Якщо ви не надаєте --fromваріант, введення перетворюється на секретну мову. Якщо --fromопція надана, здійснюється зворотне перетворення.

module Main where
import Control.Lens
import System.Environment (getArgs)
import Data.Char          (ord, chr, isUpper, isSpace)
import Data.Word          (Word8)

ord8 :: Char -> Word8
ord8 = fromIntegral . ord

chr8 :: Word8 -> Char
chr8 = chr . fromIntegral

ordIso :: Iso' Char Word8
ordIso = iso ord8 chr8

firstLetterOrd :: Word8 -> Word8
firstLetterOrd n
  | n ^. from ordIso . to isUpper = ord8 'A'
  | otherwise                     = ord8 'a'

secretChar :: Iso' Char Char
secretChar =
  iso toSecret
      fromSecret
  where
    toSecret, fromSecret :: Char -> Char
    toSecret   = secretConversion   2
    fromSecret = secretConversion (-2)

secretConversion :: Int -> Char -> Char
secretConversion n c
  | isSpace c = c
  | otherwise = c & over ordIso (secretShift n)

secretShift :: Int -> Word8 -> Word8
secretShift shiftAmount =
  preserveLetters $ (`mod` 26) . (+ shiftAmount)

preserveLetters :: (Int -> Int) -> Word8 -> Word8
preserveLetters fn n =
  firstLetter + overWord8 fn (n - firstLetter)
  where
    firstLetter = firstLetterOrd n

overWord8 :: (Int -> Int) -> Word8 -> Word8
overWord8 fn = fromIntegral . fn . fromIntegral

help :: IO ()
help =
  putStr
  $ unlines
      ["SecretLang [--from]"
      ,"If the --from option is provided, the program"
      ,"converts from the secret language. Otherwise,"
      ,"it converts to the secret language."
      ]

convertContents :: (String -> String) -> IO ()
convertContents fn = do
  input <- getContents
  putStrLn . ("Output: " ++) $ fn input

main :: IO ()
main = do
  args <- getArgs

  case args of
    ("--from":_) ->
      convertContents (^. mapping (from secretChar))

    ("--help":_) -> help
    ("-h"    :_) -> help

    _            ->
      convertContents (^. mapping secretChar)

Приклади:

$ ./SecretLang
Today is a great day
Output: Vqfca ku c itgcv fca

$ ./SecretLang --from
Vqfca ku c itgcv fca
Output: Today is a great day

1

С

    #include<stdio.h>

    int main()
    { char p[256];
    int i;
    fgets ( p, 256, stdin );
    for(i=0; i<256 ; i++)
    {
   if ( p[i] == '\n' )
    {
    p[i] = '\0';
    break;
    }
    else
    {

    if((p[i] >= 'a' && p[i] <= 'x') || (p[i] >= 'A' && p[i] <= 'X') )
    {
        p[i] +=2;
    }

    else
    {
    switch(p[i])
     {
        case 'y':    p[i] = 'a';
                     break;

       case 'Y':    p[i] = 'A';
                     break;

       case 'z':    p[i] = 'b';
                     break;
       case 'Z':    p[i] = 'B';
                     break;
       case ' ':    p[i] = ' ';
                     break;


     }
    }
}}

printf("%s", p);

    return 0;
 }

ви можете зберегти багато коду, використовуючи арифметику modulu на
знаках

@ blabla999 це змагання з популярністю, а не код-гольф
Mhmd

1
вибачте - не означало образити. Я це не помітив.
blabla999

1

EcmaScript 6:

alert(prompt(_='').split(_).map(x=>String.fromCharCode(x.charCodeAt()+(x>' '?x>'x'|x>'X'&x<'['?-24:2:0))).join(_))

EcmaScript, мій вражений ворог
Cilan

1

JAVA

32це spaceтак ми виводимо його як
88є , Xтак що менше , ніж 89рухається вгору 2 символів
90це Zтак що менше , ніж 91рухається вниз 24 символів (з що - небудь менше , ніж 89вже обробляються так тільки 89і 90ефективно)
Повторіть той же процес для малих літер, починаючи від 97а aдо 122в z.

void secret(String s) {
    for (char c : s.toCharArray()) {
        System.out.print((char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24));
    }
}

1

Powershell

$chars = [int]('a')[0]..[int]('z')[0] | %{ [char]$_, [char]::ToUpper([char]$_) }

$y = $args[0].ToCharArray() | %{
    $idx = $chars.indexOf($_);
    if ($idx -ge 0) {
        $chars[($idx + 4) % 52]
    } else  {
        $_
    } 
}

-join [char[]]$y

Вихід:

PS C:\Temp> .\z.ps1 "Today is a great day"
Vqfca ku c itgcv fca
PS C:\Temp>

1

PHP

Це рішення досить нудне:

echo strtr('Today is a great day','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','CDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuvwxyzab');

1

Пітон 3

Я думаю, що я не зовсім зрозумів питання, але все одно:

alphabet = "abcdefghijklmnopqrstuvwxyz"
rot = alphabet[2:] + alphabet[:2]
rot = rot + rot.upper()
alphabet = alphabet + alphabet.upper()

def encode_letter(letter):
    return rot[alphabet.index(letter)]

def encode_word(word):
    return "".join(encode_letter(letter) for letter in word)

def encode_string(string):
    return " ".join(encode_word(word) for word in string.split())

print("Output: " + encode_string(input("Input: ")))

1

Python 2.x

Спроба розробити багатофункціональне рішення Python.

Особливості:

  • використання диктату
  • поводження зі списком круговим чином, щоб його shift=2можна було змінювати
  • Ви також можете використовувати його для розшифровки, коли знаєте shift(просто використовуйте мінус), це також дозволяє перевірити вихід.
  • можливість додати "зміщення діапазонів" - сфери, в яких ви робите цикл
  • можливість бути або strictдля невизначених символів, або просто повернути невизначений символ введення.
  • таємна мова не залишає слідів;)

Ось:

# Shifting scopes
lower_case = map(chr, range(97, 123))
upper_case = map(chr, range(65, 91))
space = [" "] # space will always be transformed to space

def secret(instring, shift, scopes, strict=False):
    def buildTranslationDict(scores):
        translation_dict = {}
        for scope in scopes: 
            for index in range(len(scope)): 
                translation_dict[scope[index]] = scope[(index+shift) % len(scope)]
        return translation_dict 
    translation_dict = buildTranslationDict(scopes)
    # Use the translation dictionary to transform input
    output = ""        
    for char in instring:
        if strict:
           output += translation_dict[char]   # will crash if unexpected char
        else:
            try:    
               output += translation_dict[char]
            except: 
               output += char
    return output    

Доказ:

secret(instring="Today is a great day", shift=2, scopes=[lower_case, upper_case, space])
'Vqfca ku c itgcv fca'

Ви можете розшифрувати 'Wrpruurz lv qrw edg hlwkhu!':)?


Просто цікаво, чи вважаєте ви додавати цю додаткову "сувору" особливість "не до речі" ?
PascalVKooten

Це врятувало б 6 рядків коду ...
PascalVKooten

1
Ти говориш сам із собою чи я щось пропускаю? Як видалені коментарі?
Timtech

1
Так видалено, будь ласка, не видаляйте коментар також ...
PascalVKooten

0

Розширений BrainFuck

Оскільки це конкурс на популярність, я написав це з наміром зробити його таким же простим, як і EBF. Це сильно коментується, і я навмисно використовував макроси, щоб зробити потік програми більш буквальним.

Мабуть, найскладніше тут - головний перемикач, оскільки EBF не має спеціальних засобів для його виконання, так що насправді це не простіше, ніж те, як це можна зробити в BrainFuck, за винятком змінних та балансуючих дужок.

;;;; rot2.ebf : Perform rot2 on ascii text
;;;; Usage: bf ebf.bf < rot2.ebf > rot2.bf
;;;;        echo "Today is a great day" | bf rot2.bf
;;;;        # => Vqfca ku c itgcv fca
;;;;
;;;; BF interpreter/Compiler requirement: 
;;;; Wrapping cells at any size (allmost all of them do)
;;;;


;;; Memory map  
:tmp    ; a temporary cell used for the read routine
:input  ; a copy of the input for output purposes
:switch ; a copy of the input for the switch statements
:flag   ; flag to indicate the predicate has been processed or not

;;; Macros
;; Ultracompatible read
;; supports EOF 0, -1 and no change
{read_tmp 
  $input+ 
  $tmp(-),
  [+[-$input-]] ; blanks for all EOFs
  $switch [
    @input &clear
    $switch
  ]
}

;; for the switch we need
;; to do destructive testing
;; and we need to preserve the
;; original as well. 
{copy_input 
  $tmp(-$input+$switch+)
}

;; clears the cell
{clear (-)}

;; prints current cell
{print .}

;;; Main proram
;;; flow starts here
&read_tmp
while $tmp not eof
(
  &copy_input
  $flag+
  $switch 10-(22-(
    ;; not linefeed/space
    $switch 57-(-(31-(-(
       ;; default: not wrapping
       &clear
       $flag-
       $input 2+))))
    $flag (-
       ;; wrapping
       $input 24-)))
  $flag &clear
  $input &print &clear
  &read_tmp
)
;;; End

0

Javascript

var STR = "Today is a great day";
//so i can replace chars at a index in the string
String.prototype.replaceAt=function(i, char) {
    var a = this.split("");
    a[i] = char;
    return a.join("");
}

function secretIt( str ){
    for( var i = 0; i < str.length; i++ ) {
        var c = str.charCodeAt( i );
        /**
        * check for spaces first
        * check if get outside of the letter range for both lower and upper
        * if we dont go then were good
        * if so go back 26 chars
        */
        str = str.replaceAt( i, String.fromCharCode( ( c == 32 ) ? c : ( ( c = c + 2 ) > 91 && c < 97 || c < 123 ) ? c : c - 26 ) ) ;
    }
    return str;
}

console.log( secretIt( "Qsncp qcapcr ambc" ), ' ' , secretIt( STR ));



0

C #, 163

Так, це не код-гольф. Я все-таки пішов на короткий час (або, принаймні, зробив перший удар)

using System.Linq;class P{static void Main(string[]a){System.Console.WriteLine(string.Concat(a[0].Select(c=>(char)(c==32?c:c<89?c+2:c<91?c-24:c<121?c+2:c-24))));}}

Відформатовано:

using System.Linq;
class P
{
    static void Main(string[] a)
    {
        System.Console.WriteLine(string.Concat(a[0].Select(c => (char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24))));
    }
}

Так, я зазирнув у відповідь уфіїв .


0

C # 5KB

(381 символів)

391

using System;
namespace WinHelper {
    class P {
        static void Main(string[] args) {
            char[] f =  "abcdefghijklmnopqrstuvwxyz ".ToCharArray();
            char[] g =  "cdefghijklmnopqrstuvwxyzab ".ToCharArray();

            foreach (char c in Console.ReadLine().ToCharArray().ToLower()) 
                Console.Write(g[Array.FindIndex(f, a => a == c)]);
        }
    }
}

Розмір компільованого (5 КБ) значення не має. Для коду-гольфу кількість знаків (вихідного коду) зазвичай нараховується, але оскільки ця особлива проблема є змаганням за популярність, а не за кодом-гольфу, символи / розміри зовсім не мають значення. Наведіть курсор миші на popularity contestзначок під викликом (ви побачите підказку, яка пояснює це: " Конкурс популярності - це змагання, де виграє правильна відповідь з найбільшою кількістю результатівusually the most creative answer ").
РобІІІ

Крім того, він зазнає збоїв у прикладі прикладу виклику, Today is a great dayоскільки він не підтримує великі літери.
РобІІІ

0

Баш, 8 символів

... якщо у вас встановлений пакет bsdgames! Читається зі стандартного введення.

caesar 2

Приклад

echo Today is a great day|caesar 2

Вихід: Vqfca ku c itgcv fca


0

С

#include <stdio.h>
char c[100];
int main()
{
gets(c);
char *p=c,x;
while(*p)
{
    x=*p;
    if(x>='a'&&x<='z')
    {
        *p=((*p-'a'+2)%(26)+'a');
    }
    if(x>='A'&&x<='Z')
    {
        *p=((*p-'A'+2)%(26)+'A');
    }

    p++;
}
puts(c);
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.