华为OJ题目(七):字符串加密
来源:互联网 发布:有困难网络求助平台 编辑:程序博客网 时间:2024/05/17 20:33
#include<iostream>#include<cstring>using namespace std;#define M 100int main(){char key[M], data[M], encrypt[M];void Encrypt(char *key, char *data, char *encrypt);gets(key);gets(data);Encrypt(key, data, encrypt);cout << encrypt << endl;return 0;}void Encrypt(char *key, char *data, char *encrypt){char keych[M];keych[0] = key[0];int i, j = 0, k = 0, flag;for (i = 0; key[i] != '\0'; i++)//把去重之后的密钥赋给keych[],{flag = 1;for (k = 0; k<j + 1; k++) //只跟已赋值的前几个值比较,看是否重复(因为若重复只保留第一个),倒序比较{if (key[i] == keych[k])flag = 0;}if (flag){j = j + 1;keych[j] = key[i];}}int len;len = j + 1;//keych的长度char Alph[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (i = 0; Alph[i] != '\0'; i++) //keych[]补全,长度为26,值与Alph数组一一对应{flag = 1;for (k = 0; k<len; k++){if (Alph[i] == keych[k])flag = 0;if (Alph[i] == keych[k] - 32){keych[k] = keych[k] - 32; flag = 0;}}if (flag){keych[len] = Alph[i];len = len + 1;}}keych[len] = '\0';i = 0; k = 0;while (data[i] != '\0') //明文转换为密文{if ((data[i] >= 'A'&&data[i] <= 'Z') || (data[i] >= 'a'&&data[i] <= 'z')){for (j = 0; j<26; j++){if ((data[i] == Alph[j]) || (data[i] - 32 == Alph[j])) //判断大小写字母{if (data[i] >= 'A'&&data[i] <= 'Z')encrypt[k] = keych[j];elseencrypt[k] = keych[j] + 32;break;}}}elseencrypt[k] = data[i];i = i + 1; k = k + 1;}encrypt[k] = '\0';}
1 0
- 华为OJ题目(七):字符串加密
- 华为oj 字符串加密
- 华为oj:字符串加密
- 华为oj 字符串加密
- 华为oj,字符串加密
- [华为OJ] 字符串加密
- 【华为OJ】字符串加密
- 【华为 OJ 】字符串加密
- 华为OJ-字符串加密
- 华为OJ:字符串加密
- 华为oj 字符串加密
- 华为OJ题目(十六):字符串匹配
- 华为OJ上机-字符串加密
- 【华为OJ】【026-字符串加密】
- 华为OJ 初级:字符串加密
- 华为OJ题目(八):字符串加解密
- 华为OJ基础篇-字符串加密
- 华为OJ——字符串加密
- mysql 一条update语句实现两个表数据合并
- WPF实现Tab页,使用.Resx存放文件
- 黑马程序员—JAVA基础—数组
- 全屏滚动制作!!
- Ubuntu 从14.10升级到15.10
- 华为OJ题目(七):字符串加密
- jsonp跨域解决方案
- codeforces 599B Spongebob and Joke
- 验证码识别 matlab
- 细数JDK里的设计模式
- 浅谈STM32的DMA模块的使用
- 习题3-4 周期串 解题报告
- C语言中三种常见排序算法分析
- Spider 之 URL与urllib2