package main import ( "io" "os" "strings" ) type rot13Reader struct { r io.Reader } func (rot13 rot13Reader) Read(b []byte) (int,error) { n,err := rot13.r.Read(b) for i := 0; i < n; i++ { t := b[i] //lower char if t >= 97 && t <= 122 { if 122-t >= 13 { b[i] = t + 13 } else { b[i] = t - 13 } } //upper char if t >= 65 && t <= 90 { if 90-t >= 13 { b[i] = t + 13 } else { b[i] = t - 13 } } } return n,err } func main() { s := strings.NewReader("Lbh penpxrq gur pbqr!") r := rot13Reader{s} io.copy(os.Stdout,&r) }
原文地址:https://www.jb51.cc/go/190554.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。