security.c

来自「这是我积累的一些关于字符处理的一些源代码。」· C语言 代码 · 共 99 行

C
99
字号
#include <stdio.h>
#include <string.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

void encrypt(char *str,int shift);
void decrypt(char *str,int shift);
main()
{
	std::istream_iterator<char> inputChar(cin);

	char *str="Hi,can you speak c programming language?";

  printf("\n %s",str);
  encrypt(str,5);
  printf("\n Encrypt,5:%s",str);
  decrypt(str,5);
  printf("\n Decrypt,5:%s",str);

  encrypt(str,13);
  printf("\n Encrypt,13:%s",str);
  decrypt(str,13);
  printf("\n Decrypt,13:%s",str);

  getch();

}

void encrypt(char *str,int shift)
{
   unsigned char c;
   int i;

   shift=shift%26;

   for(i=0;str[i]!='\0';i++)
   {
     c=str[i];

     /* 'A'~'Z'*/
     if(c>=65&&c<=90)
     {
       c=c+shift;
       if(c>96)
       {
	c=65+c%97;
       }
     }

     /* 'a'~'z' */
     if(c>=97&&c<=122)
     {
       c=c+shift;
       if(c>122)
       {
	c=97+c%123;
       }
     }

     str[i]=c;
   }
}

void decrypt(char *str,int shift)
{

   char c;
   int i;

   shift=shift%26;
   for(i=0;str[i]!='\0';i++)
   {
     c=str[i];

     /* 'A'~'Z'*/
     if(c>=65&&c<=90)
     {
       c=c-shift;
       if(c<65)
       {
	 c=90-(64-c);
       }
     }

     /* 'a'~'z' */
     if(c>=97&&c<=122)
     {
       c=c-shift;
       if(c<97)
       {
	 c=122-(96-c);
       }
     }

     str[i]=c;
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?