관리 메뉴

코코야이야기

[c++] 프로그래밍 실습4 본문

프로그래밍/c++

[c++] 프로그래밍 실습4

코코야 2015. 6. 3. 23:30
반응형

문제

 

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
Comments