当前位置: 首页 > news >正文

C语言练习(21)

有一行电文,已按下面规律译成密码:

A→Za→Z

B→Yb→y

C→Xc→X

即第1个字母变成第26个字母,第2个字母变成第25个字母,第i个字母变成第(26-i十1)个字母。非字母字符不变。假如已知道密码是Umtorhs,要求编程序将密码译回原文,并输出密码和原文。

#include <stdio.h>
#include <string.h>
#include <ctype.h>// 解密函数
void decrypt(char* ciphertext, char* plaintext) {int i, j;int len = strlen(ciphertext);for (i = 0, j = 0; i < len; i++) {if (isalpha(ciphertext[i])) {char ch = ciphertext[i];if (ch >= 'A' && ch <= 'Z') {ch = 'A' + (26 - (ch - 'A' + 1) + 1);if (ch > 'Z') ch -= 26;}else if (ch >= 'a' && ch <= 'z') {ch = 'a' + (26 - (ch - 'a' + 1) + 1);if (ch > 'z') ch -= 26;}plaintext[j++] = ch;}else {plaintext[j++] = ciphertext[i];}}plaintext[j] = '\0';
}int main() {char ciphertext[100];char plaintext[100];// 提示用户输入密码printf("请输入加密后的密码:\n");fgets(ciphertext, sizeof(ciphertext), stdin);// 去除fgets读入的换行符(如果存在)if (ciphertext[strlen(ciphertext) - 1] == '\n') {ciphertext[strlen(ciphertext) - 1] = '\0';}decrypt(ciphertext, plaintext);printf("原文:%s\n", plaintext);printf("密码(加密后):%s\n", ciphertext);return 0;
}

http://www.lryc.cn/news/525597.html

相关文章:

  • 智能手机“混战”2025:谁将倒下而谁又将突围?
  • 计算机图形学:实验一 OpenGL基本绘制
  • 二分查找题目:快照数组
  • 深度学习|表示学习|卷积神经网络|参数共享是什么?|07
  • 基于相机内参推导的透视投影矩阵
  • 浅析Dubbo 原理:架构、通信与调用流程
  • 03垃圾回收篇(D3_垃圾收集器的选择及相关参数)
  • 一、引论,《组合数学(第4版)》卢开澄 卢华明
  • Vue3+TS 实现批量拖拽文件夹上传图片组件封装
  • 二叉树的所有路径(力扣257)
  • Python OrderedDict 实现 Least Recently used(LRU)缓存
  • LabVIEW项目中的工控机与普通电脑选择
  • Ansys Speos | Speos Meshing 网格最佳实践
  • elasticsearch segment数量对读写性能的影响
  • 全同态加密理论、生态现状与未来展望(中2)
  • 鸿蒙UI(ArkUI-方舟UI框架)-开发布局
  • RPC是什么?和HTTP区别?
  • Linux C\C++编程-建立文件和内存映射
  • 行政纠错——pycorrector学习
  • Go的defer原理
  • Windows 下本地 Docker RAGFlow 部署指南
  • 专题三_穷举vs暴搜vs深搜vs回溯vs剪枝_全排列
  • 【IEEE Fellow 主讲报告| EI检索稳定】第五届机器学习与智能系统工程国际学术会议(MLISE 2025)
  • 华为E9000刀箱服务器监控指标解读
  • 【LC】2544. 交替数字和
  • QT QTreeWidget控件 全面详解
  • 欧几里得算法求最小公倍数和最大公约数
  • Selenium配合Cookies实现网页免登录
  • DeepSeek R1模型解读与使用
  • Windows电脑不小心点击了关机,关机过程中如何阻止