?? 004.cpp
字號:
// 004.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
#include "string.h"
//移位密碼加密
void Encrypt()
{
int n;
int k;
char p[100];
cout<<"輸入循環位移的字符個數:"<<endl;
cin>>k;
cout<<"輸入要加密的字母個數:"<<endl;
cin>>n;
cout<<"輸入以小寫表示的明文字母:"<<endl;
for(int i=0;i<n;i++)
cin>>p[i];
cout<<"輸出加密后以大寫字母表示的密文:"<<endl;
for(i=0;i<n;i++)
{
if(p[i]+k%26<'a') //當字母移位后ASC||碼小于'a'時,p[i]=p[i]+k%26-6.
{
p[i]=p[i]+k%26-6;
cout<<p[i];
}
else if(p[i]+k%26>'z') //當字母移位后ASC||碼大于'z'時,p[i]=p[i]+k%26-58.
{
p[i]=p[i]+k%26-58;
cout<<p[i];
}
else //當字母移位后ASC||碼在'a'與'z'之間時,p[i]=p[i]+k%26-32.
{
p[i]=p[i]+k%26-32;
cout<<p[i];
}
}
cout<<endl;
cin.get();
}
//移位密碼解密
void Decode()
{
int n;
int k;
char p[100];
cout<<"輸入循環位移的字符個數:"<<endl;
cin>>k;
cout<<"輸入要解密的字母個數:"<<endl;
cin>>n;
cout<<"輸入以大寫字母表示的密文:"<<endl;
for(int i=0;i<n;i++)
cin>>p[i];
cout<<"輸出解密后以小寫字母表示的明文:"<<endl;
for(i=0;i<n;i++)
{
if(p[i]+k%26<'A') //當字母移位后ASC||碼小于'A'時,p[i]=p[i]+k%26+58.
{
p[i]=p[i]+k%26+58;
cout<<p[i];
}
else if(p[i]+k%26>'Z') //當字母移位后ASC||碼大于'Z'時,p[i]=p[i]+k%26+6.
{
p[i]=p[i]+k%26+6;
cout<<p[i];
}
else //當字母移位后ASC||碼在'A'與'Z'之間時,p[i]=p[i]+k%26+32.
{
p[i]=p[i]+k%26+32;
cout<<p[i];
}
}
cout<<endl;
cin.get();
}
void main()
{
int sign=1;
int z;
while(sign==1)
{
cout<<"加密----1,解密----2,退出----0 :"<<endl;
cin>>z;
switch(z)
{
case 0: sign=0;
break;
case 1: Encrypt();
cin.get();
break;
case 2: Decode();
cin.get();
break;
default: cout<<"input error!"<<endl;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -