백준 algorithm
백준 11655 - ROT13
cosmohoo
2020. 3. 11. 23:10
반응형

=> 공백이 포함된 문자열을 입력받아 각 문자마다 아스키코드로 13을 더해주면 된다.
=> 소문자와 대문자의 범위를 벗어날 때의 예외처리를 해주어야한다.
=> 본인은 소문자의 아스키코드를 int형으로 받아 따로 처리해주었다.
//
// main.cpp
// Baekjoon
//
// Created by 이준후
// Copyright © 2020 이준후. All rights reserved.
//
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string s;
getline(cin, s);
for(int i=0; i<s.length(); ++i)
{
if( (s[i]>= 65 && s[i]<= 90 ) ) //case Big Letter
{
s[i] +=13;
if(s[i]>90)
{
int tmp= s[i]%90;
s[i]=64+tmp;
}
}
else if( s[i]>= 97 && s[i]<= 122 ) //case Small Letter
{
int index= s[i];
index+=13;
if(index >122)
{
int tmp=index % 122;
s[i] = 96+tmp;
}
else{
s[i]=index;
}
}
else continue; //case not alphabet
};
cout<<s<<'\n';
return 0;
}
반응형