Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
21
Task/Caesar-cipher/PureBasic/caesar-cipher-2.basic
Normal file
21
Task/Caesar-cipher/PureBasic/caesar-cipher-2.basic
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Procedure.s CC_encrypt(text.s, key, reverse = 0)
|
||||
;if reverse <> 0 then reverse the encryption (decrypt)
|
||||
Protected i, *letter.Character, *resultLetter.Character, result.s = Space(Len(text))
|
||||
|
||||
If reverse: key = 26 - key: EndIf
|
||||
If key < 1 Or key > 25: ProcedureReturn: EndIf ;exit if key out of range
|
||||
|
||||
*letter = @text: *resultLetter = @result
|
||||
While *letter\c
|
||||
Select *letter\c
|
||||
Case 'A' To 'Z'
|
||||
*resultLetter\c = ((*letter\c - 65 + key) % 26) + 65
|
||||
Case 'a' To 'z'
|
||||
*resultLetter\c = ((*letter\c - 97 + key) % 26) + 97
|
||||
Default
|
||||
*resultLetter\c = *letter\c
|
||||
EndSelect
|
||||
*letter + SizeOf(Character): *resultLetter + SizeOf(Character)
|
||||
Wend
|
||||
ProcedureReturn result
|
||||
EndProcedure
|
||||
Loading…
Add table
Add a link
Reference in a new issue