Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "io"
  5. "os"
  6. "strings"
  7. "fmt"
  8. )
  9.  
  10. type rot13Reader struct {
  11. r io.Reader
  12. }
  13.  
  14. func (reader *rot13Reader) Read(b []byte) (int, error) {
  15. rot13 := func(r rune) rune {
  16. switch {
  17. case r >= 'A' && r <= 'Z':
  18. return 'A' + (r-'A'+13)%26
  19. case r >= 'a' && r <= 'z':
  20. return 'a' + (r-'a'+13)%26
  21. }
  22. return r
  23. }
  24. n, err := reader.r.Read(b)
  25. result := []byte(strings.Map(rot13, string(b)))
  26. b = []byte(result)
  27. fmt.Println(string(b))
  28. return n, err
  29. }
  30.  
  31. func main() {
  32. s := strings.NewReader("Lbh penpxrq gur pbqr!")
  33. r := rot13Reader{s}
  34. io.Copy(os.Stdout, &r)
  35. }
  36.  
  37. You cracked the code!
  38. Lbh penpxrq gur pbqr!You cracked the code!
  39.  
  40. Lbh penpxrq gur pbqr!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement