所有情况都考虑进来,踏踏实实,一步一个脚印,网上也有简短的代码,但这是自己想出来滴,感觉慢慢积累,刷出了一丢丢成就感呢(虽然离大神们还是十万八千里)
谢谢,下面校友的提醒,现在已经测试通过。
#include<iostream>
#include<string>
using namespace std;
void Encrypt (char aucPassword[], char aucResult[]);
int unEncrypt (char result[], char password[]);
int main()
{
//cout<<"Please input words to be encoded and decoded"<<endl;
char aucPassword[100],aucResult[100],result[100],password[100];
//string aucPassword,aucResult,result,password;
cin>>aucPassword;
cin>>result;
Encrypt(aucPassword,aucResult);
unEncrypt(result,password);
return 0;
}
void Encrypt (char aucPassword[], char aucResult[])
{
char * pchar=aucPassword;
int i=0;
while(*pchar)
{
if(*pchar>='a'&&*pchar<'z')
*(i+aucResult)=*pchar-31;
else if(*pchar>='A'&&*pchar<'Z')
*(i+aucResult)=*pchar+31;
else if(*pchar=='Z')
*(i+aucResult)='a';
else if(*pchar=='z')
*(i+aucResult)='A';
else if(*pchar>='0'&&*pchar<'9')
*(i+aucResult)=*pchar+1;
else if(*pchar=='9')
*(i+aucResult)='0';
pchar++;
i++;
}
*(i+aucResult)=0;
cout<<aucResult<<endl;
}
int unEncrypt (char result[], char password[])
{
char * pchar=result;
<span style="white-space:pre"> </span>int len=strlen(result);
char * aucResult=password;
while(*pchar)
{
if(*pchar>'a'&&*pchar<='z')
*aucResult=*pchar-31;
else if(*pchar>'A'&&*pchar<='Z')
*aucResult=*pchar+31;
else if(*pchar=='A')
*aucResult='z';
else if(*pchar=='a')
*aucResult='Z';
else if(*pchar>'0'&&*pchar<='9')
*aucResult=*pchar-1;
else if(*pchar=='0')
*aucResult='9';
pchar++;
aucResult++;
}
*aucResult=0;
cout<<(aucResult-len)<<endl;//原来写的是aucResult,估计当时是用的和Encrypt一样的办法,定义了i变量,后来想着可以直接修改指针,修改后忘记保存了
//system("pause");
return 0;
}