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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h> #include <string> #include <iostream> using namespace std; char toReal(char c) { if ((int)c <= 69) { return (char)((int)c - 5 + 26); } else { return (char)((int)c - 5); } } void caisar(string txt) { int len = txt.size(); for (int i = 0; i < len; i++) { if ((65 <= (int)txt[i]) && ((int)txt[i] <= 90)) { char c = toReal(txt[i]); printf("%c", c); } else { printf("%c", txt[i]); } } printf("\n"); } int main() { while (1) { string start, end; cin >> start; getchar(); if (start == "ENDOFINPUT") break; string txt; getline(cin, txt); getchar(); caisar(txt); cin >> end; } } | cs |
1. string 클래스를 배열처럼 활용할 수 있다
2. cin 입력을 여러번 받아도, 그 경우에 buffer 를 비워줘야한다.
그러기 위해서 getchar() 를 썼다
'알고리즘 > 문자와 문자열' 카테고리의 다른 글
1357 뒤집힌 덧셈 (0) | 2020.02.29 |
---|---|
문자열 정리> 기본 기법들 모음 (0) | 2020.01.12 |
4659 비밀번호 발음하기 (0) | 2020.01.07 |
10545 뚜기뚜기메뚜기 (0) | 2020.01.06 |
3077 임진왜란 (0) | 2020.01.06 |