티스토리 뷰

메모

golang 문자열 입출력 공백 포함하기

4567은 소수 2022. 2. 15. 01:57
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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함