HJ29 字符串加解密

2023-10-26

描述
1、对输入的字符串进行加解密,并输出。

2、加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程。

本题含有多组样例输入。
输入描述:
输入说明
输入一串要加密的密码
输入一串加过密的密码

输出描述:
输出说明
输出加密后的字符
输出解密后的字符

示例1
输入:
abcdefg
BCDEFGH
复制
输出:
BCDEFGH
abcdefg

#include <stdio.h>
#include <string.h>

char encode(char a)
{
    if(a>='a' && a<='z')
    {
        if(a == 'z')
        {
            return 'A';
        }
        return (a+1-'a'+'A');
    }
    else if(a>='A' && a<='Z')
    {
        if(a == 'Z')
        {
            return 'a';
        }
        return (a+1-'A'+'a');
    }
    else if(a>='0' && a<='9')
    {
        if(a == '9')
        {
            return '0';
        }
        return (a+1);
    }
    return a;
}

char decode(char a)
{
    if(a>='a' && a<='z')
    {
        if(a == 'a')
        {
            return 'Z';
        }
        return (a-1-'a'+'A');
    }
    else if(a>='A' && a<='Z')
    {
        if(a == 'A')
        {
            return 'z';
        }
        return (a-1-'A'+'a');
    }
    else if(a>='0' && a<='9')
    {
        if(a == '0')
        {
            return '9';
        }
        return (a-1);
    }
    return a;
}


int main(int argc, char **argv)
{
    char a[100] = {0};
    char b[100] = {0};
    char c[100] = {0};
    
    while(scanf("%s", a) != EOF)
    {
        scanf("%s", b);
        for(int i=0; i<strlen(a); i++)
        {
            printf("%c", encode(a[i]));
        }
        printf("\n");
        for(int i=0; i<strlen(b); i++)
        {
            printf("%c", decode(b[i]));
        }
        printf("\n");
    }
    
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HJ29 字符串加解密 的相关文章

  • 解决文字和elementUI中的进度条progress组件不能在同一行的问题

    我们使用span标签包裹一段文字 想要和elementUI中的progress组件显示在同一行 效果如下 span是一个行元素 progress是一个块元素 起初我是使用弹性盒布局 display flex 想让他们显示在一行 但是使用弹性
  • df查询命令用法区别。df -ih与df -lh

    今天磁盘显示没有可用空间了 google后记录一下 本人是菜鸟一枚 搞不清楚 i 与 h的区别 幸好文章地址http www 111cn net sys CentOS 86335 htm 截图如下 经过对比发现假如执行df lh命令发现磁盘
  • 基于ADRC的FOC位置环控制

    ADRC位置环控制 ADRC介绍 1 非线性跟踪微分器 2 非线性ESO观测器 3 非线性状态误差反馈控制律原理 NLSEF 4 调参流程 1 调TD 2 调ESO 3 调NLSEF 5 基于ADRC的位置环设计 ADRC框图 基于ADRC
  • PKG_CHECK_MODULES未定义

    一直以来 对于使用automake有点害怕 网上的大多资料都是说明autoconf生成什么文件 automake又做什么事情 还有autoscan等等 笔者在使用开源项目过程中遇到了一个问题 PKG CHECK MODULES未定义 奇怪

随机推荐

  • python turtle画表情包--不可以色色

    闲来无事 翻到以前的一个代码 将它魔改一下 不可以色色 先看看运行结果图 代码如下 小伙伴们可以根据自己的需要进行更改 import turtle as t if name main t speed 0 t penup t right 30
  • 机器学习-支持向量机(非线性分类)

    一 介绍 在进行分类的时候 大部分数据并不是线性可分的 而是需要通过数据映射 将数据变换到高维度进行分类 这就需要借助核函数来对其进行变换 我们已经在线性情况下 超平面公式可以写为 对于线性不可分 我们使用一个非线性映射 将数据映射到特征空
  • css3直线运动_纯css3动画--边框线条动画

    这是一款使用纯CSS3制作的效果非常炫酷的元素边框线条动画特效 这个元素边框线条动画使用伪元素和keyframes来制作线条运动效果 制作方法 1 HTML结构 该边框线条动画特效的HTML结构使用的是一个空的 来作为容器 2 CSS样式
  • 后缀名为.phps的文件

    文章目录 前言 一 phps是什么 二 使用情场景 三 其他使用场景 前言 遇到名为index phps的文件 不明白 phps代表什么意思 这里记录一下 一 phps是什么 phps即为 PHP Source PHP Source 由 T
  • DCDC基础(3)--BUCK电路的电感选型

    最近开通了公众号 射频工程师的日常 有文章更新 可以关注一下 谢谢 上一节带大家了解了一下BUCK电路的反馈电阻和自举电容的问题 从原理上分析了下组成BUCK电路的各个元器件的作用 又有人问了 面试中经常被问到BUCK的功率电感怎么选型 电
  • 多线程基础

    文章目录 1 线程简介 1 1 多任务 1 2 多线程 1 2 1 普通方法调用和多线程 1 3 程序 进程 线程 1 3 1 Process与Thread 1 4 核心概念 2 线程实现 2 1 三种创建方式 2 1 1 Thread 2
  • 阿里的easyExcel导出

    easyExcel的gitHub地址 https github com alibaba easyexcel 开发环境 springboot 1 导入依赖
  • 如何在thinkphp5.1中写接口及接口调用

    在thinkphp5 1中如何写接口及如何调用接口 对于php不熟悉的人来说 解除thinkphp还是挺有难度的 下面记录如何编写接口 及如何对编写的接口进行调用 1 首先在thinkphp中的application中的api contro
  • 毕业设计-基于深度学习的安全帽智能识别系统

    目录 前言 课题背景和意义 实现技术思路 一 系统架构 二 基于深度学习的目标检测算法实现 三 交互设计与实现 四 基于深度学习的安全帽智能识别系统测试 五 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或
  • SecureCRT 访问Linux虚拟机(Oracle VM VirtualBox) 返回超时密码错误 解决办法

    问题描述 虚拟机ip能ping通 SecureCRT就是链接不上 解决办法 在找了网上无数多的办法 并没有成功 ssh重启 修改权限 1 设置Oracle VM VirtualBox网络方式 2 进入系统检查ssh 转载 http blog
  • 分享一个python基于数据可视化的智慧社区服务平台源码

    作者 计算机源码社 个人简介 本人七年开发经验 擅长Java Python PHP NET Node js 微信小程序 爬虫 大数据等 大家有这一块的问题可以一起交流 学习资料 程序开发 技术解答 文档报告 JavaWeb项目 微信小程序项
  • 【华为OD机试真题 JAVA】两数之和绝对值最小

    JS版 华为OD机试真题 JS 两数之和绝对值最小 标题 两数之和绝对值最小 时间限制 1秒 内存限制 32768K 语言限制 不限 给定一个从小到大的有序整数序列 存在正整数和负整数 数组 nums 请你在该数组中找出两个数 其和的绝对值
  • CSAPP第二章课后作业题

    include
  • 2020最新字节跳动面试经验分享,已拿到offer (4轮技术面+hr面)

    随着秋招的开启 不管是应届毕业生找工作 还是在职程序员跳槽去找更高薪水的工作 都要面临面试这一难关 应对面试不仅需要丰富的项目经历 还需要牢固的基础知识 在这里 跟大家分享一下我面试字节跳动的经验 包括4轮技术面 hr面 希望对大家有帮助
  • STM32 软件仿真失败 ***** error 65: access violation at 0x40021000 : no ****'read' permission******

    在使用STM32进行软件仿真时 可能会遇到很多问题 最常见的当然如标题所示 STM32 软件仿真失败 no read permission 还有其他很多问题比如 error 35 undefined line number BS Templ
  • react性能优化

    写在前面的话 要想解决问题 首先得找到问题的根源 所以 说起性能分析 还是要从其生命周期和渲染机制说起 1 渲染机制 react的组件渲染分为初始化渲染和更新渲染 在初始化渲染的时候会调用根组件下的所有组件的render方法进行渲染 但是当
  • Eclipse连接Hadoop集群(详细版)

    颜子之不较 孟子之自反 是贤人处横逆之方 子贡之无谄 原思之坐弦 是贤人守贫穷之法 相关连接 HDFS相关知识 Hadoop分布式文件系统 HDFS 快速入门 Hadoop分布式文件系统 HDFS 知识梳理 超详细 Hadoop集群的安装与
  • 人生苦短,我学python

    人生苦短我学python 一个python小白的入门之路 初识Python 刚开始学python是在今年七月 对python的第一印象就是短小而又精悍 变量无需定义即可使用 数不清的大大小小的库信手拈来 笔者以为 python的语法与mat
  • 华为OD机试真题-最长连续子序列-2023年OD统一考试(B卷)

    题目描述 有N个正整数组成的一个序列 给定整数sum 求长度最长的连续子序列 使他们的和等于sum 返回此子序列的长度 如果没有满足要求的序列 返回 1 输入描述 序列 1 2 3 4 2 sum 6 输出描述 序列长度 3 补充说明 输入
  • HJ29 字符串加解密

    描述 1 对输入的字符串进行加解密 并输出 2 加密方法为 当内容是英文字母时则用该英文字母的后一个字母替换 同时字母变换大小写 如字母a时则替换为B 字母Z时则替换为a 当内容是数字时则把该数字加1 如0替换1 1替换2 9替换0 其他字