字符串加解密
1.对输入的字符串进行加解密,并输出。
2.加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z是替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
3.解密方法为加密的逆过程。
#include<iostream>
#include<string>
using namespace std;
void Encrypt(string &s1,string &s2)
{
string::size_type i;
for(i=0;i<s1.size();i++)
{
if(s1[i]>='A' && s1[i]<'Z')
s1[i]='a'+s1[i]-'A'+1;
else if(s1[i]>='a' && s1[i]<'z')
s1[i]='A'+s1[i]-'a'+1;
else if(s1[i]=='Z') s1[i]='a';
else if(s1[i]=='z') s1[i]='A';
else if(s1[i]>='0' && s1[i]<'9')
s1[i]=s1[i]+1;
else if(s1[i]=='9') s1[i]='0';
}
s2=s1;
}
void unEncrypt(string &s1,string &s2)
{
string::size_type i;
for(i=0;i<s1.size();i++)
{
if(s1[i]>'0' && s1[i]<='9')
s1[i]=s1[i]-1;
else if(s1[i]=='0') s1[i]='9';
else if(s1[i]>'a' && s1[i]<='z')
s1[i]='A'+s1[i]-'a'-1;
else if(s1[i]=='a') s1[i]='Z';
else if(s1[i]>'A' && s1[i]<='Z')
s1[i]='a'+s1[i]-'A'-1;
else if(s1[i]=='A') s1[i]='z';
}
s2=s1;
}
int main()
{
string source1,dest1,source2,dest2;
cin>>source1;
Encrypt(source1,dest1);
cout<<dest1<<endl;
cin>>dest2;
unEncrypt(dest2,source2);
cout<<source2<<endl;
}