位运算(2)

来源:互联网 发布:sql数据库连接语句 编辑:程序博客网 时间:2024/05/23 01:23

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i, number;
    char *p;
    p = malloc(200);
    printf("请输入长度不超过200的密文:\n");
    gets(p);
    printf("\n请输入解密方案的代号(1~5):\n");
    scanf("%d",&number);
    switch(number)
    {
       case 1:
        for(i=0;i<strlen(p);i++)
       {
          p[i] = p[i] ^ 520;
       } break;
       case 2:
        for(i=0;i<strlen(p);i++)
       {
          p[i] = ~p[i];
       } break;
       case 3:
        for(i=0;i<strlen(p);i++)
       {
          p[i] = ~(p[i] ^ 13 ^ 520);
       } break;
       case 4:
        for(i=0;i<strlen(p);i++)
       {
           p[i] = ~p[i] ^ 520;
       } break;
       case 5:
        for(i=0;i<strlen(p);i++)
       {
           p[i] = ~(~(p[i] ^ 13) ^ 520);
       } break;
       default : printf("\n输入错误!\n");system("pause");exit(0);
    }
    printf("\n该密文的原文是:\n");
    puts(p);
    free(p);
    p=NULL;
    printf("\n\n");
    return 0;
}

原创粉丝点击