코코야이야기
[c++] 프로그래밍 실습4 본문
문제
A부터 Z까지 영문 대문자로 된 키를 입력으로 받은 다음, 키보드를 통해 입력된 문장을 비게네르 암호화 기법을 사용하여 암호화하는 프로그램을 작성하라.
스페이스는 문자 A보다 하나 앞에 있는 문자로 취급한다. 아래에 있는 첫 번째 예에서 A는 1, B는 2, C는 3 만큼 뒤에 있는 문자로 암호화한다.
- 입출력 예
[입력] 3개의 키 입력 : ABC
평문 입력 : FIX YOU ZOO
[출력] 암호문 출력 : GK A RVBCPQ
[입력] 3개의 키 입력 : EJO
평문 입력 : FIX YOU ZOO
[출력] 암호문 출력 : KSLEHCZJNTY
소스코드
#include<iostream>
#include<string>
using namespace std;
void main()
{
char key[4];
cout<<"3개의 영어대문자 키를 입력하세요."<<endl;
cin>>key;
string str;
cout<<"평문을 입력하세요"<<endl;
cin.sync();//buffer 비우기
getline(cin,str,'\n');
int len = str.length();
const char *c = str.c_str();
cout<<len<<endl;
int tmp;
int i_key;
char output;
for(int i=0; i<len; i++)
{
i_key=(int)key[(i%3)] - 64;
if((int)c[i]==32)
{
tmp = 64 + i_key;
}
else{
tmp=(int)c[i] + i_key;
}
if(tmp > 90)
tmp = tmp-27;
if(tmp == 64)
tmp = 32;
output = (char)tmp;
cout<<output;
}
cout<<endl;
}
'프로그래밍 > c++' 카테고리의 다른 글
알고리즘 - 버블정렬 (0) | 2015.06.05 |
---|---|
[c++] 알고리즘 - 선택정렬 (0) | 2015.06.04 |
[c++] 프로그래밍 실습3 (0) | 2015.06.03 |
[c++] 프로그래밍 실습2 (0) | 2015.06.02 |
[c++] 프로그래밍 실습1 - 5 (0) | 2015.06.02 |