8_4.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //8_4
  2. //the result of 3 and 2 is not 8
  3. //(t)116+4,(h)104+9,(e)101+6,( )32+2,(r)114+8,(e)101+7,(s)115+3,
  4. //(u)117+4,(l)108+9,(t)116+6,( )32+2,(o)111+8,(f)102+7,( )32+3,
  5. //(3)51+4,( )32+9,(a)97+6,(n)110+2,(d)100+8,( )32+7,(2)50+3,
  6. //( )32+4,(i)105+9,(s)115+6,( )32+2,(n)110+8,(o)111+7,(t)116+3,
  7. //( )32+4,(8)56+9
  8. //得到密文为:
  9. //xqk″zlvyuzqn′6$jtf(9#m!&pw #
  10. #include <iostream.h>
  11. char* jiami(const char* str);
  12. char* jiemi(const char* str);
  13. const char key[]={4,9,6,2,8,7,3};
  14. const keylen=sizeof(key);
  15. void main()
  16. {
  17.   char* s="the result of 3 and 2 is not 8";
  18.   cout <<"n原文为: n" <<s <<endl;
  19.   char* result1=jiami(s);
  20.   cout <<"n密文为: n" <<result1 <<endl;
  21.   char* result2=jiemi(result1);
  22.   cout <<"n解密之后为: n" <<result2 <<endl;
  23.   delete[] result1;
  24.   delete[] result2;
  25. }
  26. char* jiami(const char* str)
  27. {
  28.   int len=strlen(str);
  29.   char* result = new char[len+1];
  30.   for(int i=0,j=0; i<len; i++,j=(j+1)%keylen){
  31.     result[i] = str[i]+key[j];
  32.     if(result[i]>122)
  33.       result[i]-=90;
  34.   }
  35.   return result;
  36. }
  37. char* jiemi(const char* str)
  38. {
  39.   int len=strlen(str);
  40.   char* result = new char[len+1];
  41.   for(int i=0,j=0; i<len; i++,j=(j+1)%keylen){
  42.     result[i] = str[i]-key[j];
  43.     if(result[i]<32)
  44.       result[i]+=90;
  45.   }
  46.   return result;
  47. }