티스토리 뷰
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var s string
writer := bufio.NewWriter(os.Stdout)
reader := bufio.NewReader(os.Stdin)
s, _ = reader.ReadString('\n') // \n 나올 때까지 입력
// s = strings.TrimSpace(s) // 앞 뒤 줄바꿈, 공백 등 불필요한 문자 제거 (순수 s)
str := []rune(s)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z' {
tmp := str[i] - 'a'
str[i] = 'a' + (tmp+13)%26
} else if str[i] >= 'A' && str[i] <= 'Z' {
tmp := str[i] - 'A'
str[i] = 'A' + (tmp+13)%26
}
}
s = string(str)
fmt.Fprintf(writer, "%s", s)
writer.Flush()
}
참고문제 : https://www.acmicpc.net/problem/11655
11655번: ROT13
첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다.
www.acmicpc.net
ReadString('\n') 으로 줄바꿈 나올때까지 입력받는 걸로 처리 가능 (다른 문자도 가능)
문제 풀이 땜에 주석 쳤지만 TrimSpace(s) 로 s 에 있는 불필요한 공백 (줄바꿈, 맨 앞 공백 등) 제거
string 과 []rune 은 서로 바꾸는 거 호환되지만 형식 아예 다른 녀석이니 char로 다루고 싶다면 []rune 을 쓰자....
golang 문자열 어려웡
'메모' 카테고리의 다른 글
Ubuntu Openssl 설치 (0) | 2022.11.20 |
---|---|
golang 테스트 간단 정리 (testing, github.com/stretchr/testify) (0) | 2022.02.15 |
golang 입출력 빠르게 (0) | 2022.02.15 |
Go - slice 기본 내용 정리 (0) | 2022.01.26 |
github gist test (0) | 2021.05.27 |
댓글