RosettaCodeData/Task/Rot-13/True-BASIC/rot-13.basic

26 lines
762 B
Plaintext

FUNCTION rot13$(s$)
LET ans$ = ""
FOR a = 1 to len(s$)
LET letter$ = (s$)[a:a+1-1]
IF letter$ >= "A" and letter$ <= "Z" then
LET char$ = chr$(ord(letter$[1:1])+13)
IF char$ > "Z" then LET char$ = chr$(ord(char$[1:1])-26)
ELSEIF letter$ >= "a" and letter$ <= "z" then
LET char$ = chr$(ord(letter$[1:1])+13)
IF char$ > "z" then LET char$ = chr$(ord(char$[1:1])-26)
ELSE
LET char$ = letter$
END IF
LET ans$ = ans$ & char$
NEXT a
LET s$ = ans$
LET rot13$ = s$
END FUNCTION
INPUT prompt "Enter a string: ": s$
PRINT "Before encoding : "; s$
PRINT "After encoding : "; rot13$(s$)
LET s$ = rot13$(s$)
PRINT "After decoding : "; rot13$(s$)
END