1) 문자열 띄어쓰기를 해야 함.
: getline을 사용하자.
2) 여러줄을 입력받아야 함.
while (getline(cin, string)) 을 사용하자.
문제를 읽어보고, 1번을 2번으로 변경하자고 생각을 하게 됨.
그래서 일단 배열 선언해서 나타내봄.
하다보니까 어쨋든 1번을 2번으로 변경하는 것이므로,
key값과 value를 가지고 있는 map으로 처리하면 되지 않을까??? 란 생각을 하게 됨.
: 대문자 , 소문자, 자음 ,모음 을 하나의 map에다가 때려 박음
#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include <string>
#include <stack>
#include <list>
#include <deque>
#include <map>
int main()
{
map<char, char>m = { {'a', 'e'}, {'i' ,'o'} , {'y' ,'u'}
, {'e' ,'a' }, {'o' ,'i'} , {'u' ,'y'}
, {'b', 'p'}, {'k', 'v'}, {'x', 'j'}, {'z', 'q'}, {'n', 't'}
, {'h', 's'} , {'d', 'r'} , {'c', 'l'} , {'w', 'm'}
, {'g', 'f'}
, {'p', 'b'} , {'v', 'k'} , {'j', 'x'} , {'q', 'z'}
, {'t', 'n'} , {'s', 'h'} , {'r', 'd'} , {'l', 'c'}
, {'m', 'w'} , {'f', 'g'}
,
{'A', 'E'}, {'I' ,'O'} , {'Y' ,'U'}
, {'E' ,'A' }, {'O' ,'I'} , {'U' ,'Y'}
, {'B', 'P'}, {'K', 'V'}, {'X', 'J'}, {'Z', 'Q'},
{'N', 'T'}
, {'H', 'S'} , {'D', 'R'} , {'C', 'L'} , {'W', 'M'}
, {'G', 'F'}
, {'P', 'B'} , {'V', 'K'} , {'J', 'X'} , {'Q', 'Z'}
, {'T', 'N'} , {'S', 'H'} , {'R', 'D'} , {'L', 'C'}
, {'M', 'W'} , {'F', 'G'} };
//char moeum1[] = { 'a', 'i', 'y', 'e', 'o', 'u' };
//char moeum2[] = { 'e', 'o', 'u', 'a', 'i', 'y' };
//char jaeum1[] = { 'b', 'k', 'x', 'z', 'n', 'h', 'd', 'c'
// ,'w', 'g', 'p', 'v', 'j', 'q', 't', 's', 'r', 'l', 'm',
// 'f'};
//char jaeum2[] = { 'p', 'v', 'j', 'q', 't', 's', 'r', 'l'
// ,'m', 'f', 'b', 'k', 'x', 'z', 'n', 'h', 'd', 'c', 'w',
// 'g' };
string word;
//cin >> word;
// 띄어쓰기...
while (getline(cin, word))
{
for (auto iter : word)
{
if (m.find(iter) != m.end())
cout << m[iter];
else
cout << iter;
}
cout << endl;
}
//getline(cin, word);
// 대문자도 있음...
// 위에걸로 하지 말자.
}