#include<iostream>
using namespace std;
void Secret(char*, int size);
void Unsect(char*, int size);
int s[]={4,9,6,2,8,7,3};
int main()
{
/*输入字符串并让指针a指向它,因为不知道输入一个串的用法,只好先这样 用着吧*/
char* const a="i am a student";//char a[]="i am a student",有更好改的吗
/* cout<<"please enter a string:"<<endl;
cin>>a;
*/
int size=sizeof(s)/sizeof(*s);//注意这里测试数组是完全可以这样算的。
cout<<"the secreted string is:";
Secret(a, size);
cout<<"the Unsect string is:";
Unsect(a, size);
return 0;
}
void Secret(char* b, int size)
{
char* c=b;
for(int i=0; *b; b++,i++/size)
{
*b+=s[i];///////////////////////////////////////////////////////为什么这里不能这样赋值呢?错误说到这里是Unhandled Exception :Access Violation
if(*b>122) *b=*b%122;
}
cout<< c<<endl;
}
void Unsect(char* b, int size)
{
char* c=b;
for(int i=0; *b; b++,i++/size)
{
*b-=s[i];
if(*b<32) *b+=122;
}
cout<<c<<endl;
}
[此贴子已经被作者于2007-3-30 14:31:00编辑过]