间谍题(转换字符)

2024-03-20 01:20
文章标签 转换 字符 间谍

本文主要是介绍间谍题(转换字符),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*. R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于S国的R国间
谍小C终于摸清了S国军用密码的编码规则: 加密信息中的字母转换成其后的第四个字母,例如 A变成E(a变
成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成原信息为
G l m r e 。
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void change(char b[]);
void insert(char str[]);
int main(void)
{int i;char a[100];                                       //定义一个足够长的数组printf("请输入字符串:\n");gets_s(a);change(a);insert(a);system("pause");return 0;
}void change(char b[])                                   //当数组作为函数参数时,传递的时地址,若是有返回值的参数,返回的也是个地址
{                                                       //若在该函数中改变了数组元素,那么数组在主函数中也改变了int i = 0;while(b[i] != '\0')                                 //当不确定数组长度时for循环不好上手,改用while控制循环条件{if (b[i] <= '9' && b[i] >= '0')                 //当b[i]中的是数字时b[i]不改变b[i] = b[i];if (b[i] <= 'V' && b[i] >= 'A' || b[i] <= 'v' && b[i] >= 'a')   //当b[i]中的元素是A(a)-V(v)时将该字符后移4位b[i] += 4;if (b[i] > 'V' && b[i] <= 'Z' || b[i] > 'v' && b[i] <= 'z')     //当b[i]中的元素是V(b)-Z(z)时往前移22位b[i] -= 22;                                       i++;}
}
void insert(char str[])
{int i;for (i = strlen(str); i > 0; i--)                                    {str[2 * i] = str[i];                                            //将数组加倍,并将原数组元素保存在现在数组的偶数位str[2 * i - 1] = ' ';                                           //将数组元素的奇数位全赋值为空格}puts(str);                                                          //直接在insert函数中打印改变后的字符串
}

该题主函数很简单,调用change和insert两个函数,重要的是如何通过函数改变数组b[i]。若b[i]在change中未发生变化,则在insert中输出的结果还是change之前的字符串。数组作为函数参数被调用时,调用的是该数组的地址,在函数中改变每个数组元素地址中所存放的元素的值,则在返回时可以改变数组元素的大小,在调用函数的过程中,数组的地址始终不被改变。

另一个值得注意的是当数组的长度未知时,for循环不再顺手,则可用while循环

while(b[i] != '\0'

在字符串中的元素不等于空字符时一直循环,直到数组元素全部被操作才跳出。

最终的运行结果如下

 

这篇关于间谍题(转换字符)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827852

相关文章

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

如何将一个文件里不包含某个字符的行输出到另一个文件?

第一种: grep -v 'string' filename > newfilenamegrep -v 'string' filename >> newfilename 第二种: sed -n '/string/!'p filename > newfilenamesed -n '/string/!'p filename >> newfilename

数据流与Bitmap之间相互转换

把获得的数据流转换成一副图片(Bitmap) 其原理就是把获得倒的数据流序列化到内存中,然后经过加工,在把数据从内存中反序列化出来就行了。 难点就是在如何实现加工。因为Bitmap有一个专有的格式,我们常称这个格式为数据头。加工的过程就是要把这个数据头与我们之前获得的数据流合并起来。(也就是要把这个头加入到我们之前获得的数据流的前面)      那么这个头是

【Python 千题 —— 算法篇】字符统计

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在编程中,对字符串的字符统计是一个常见任务。这在文本处理、数据分析、词频统计、自然语言处理等领域有广泛应用。无论是统计字母出现的频率,还是分析不同字符类型的数量,字符串字符统计都是非常有用的技术。 字符统

C语言进阶【1】--字符函数和字符串函数【1】

本章概述 字符分类函数字符转换函数strlen的使用和模拟实现strcpy的使用和模拟实现strcat的使用和模拟实现strcmp的使用和模拟实现彩蛋时刻!!! 字符分类函数 字符: 这个概念,我们在以前的文章中讲过了。我们键盘输入的信息都是字符。字符大体可以分为两类——单个字符,字符串。而单个字符又可以进行分类——字母字符,数字字符,特殊字符和不可见字符。进行思维图展示: 在日

centOS7.0设置默认进入字符界面

刚装的,带有x window桌面,每次都是进的桌面,想改成自动进命令行的。记得以前是修改 /etc/inittab 但是这个版本inittab里的内容不一样了没有id:x:initdefault这一行而且我手动加上也不管用,这个centos 7下 /etc/inittab 的内容 Targets systemd uses targets which serve a simil

高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标

高斯平面直角坐标系(Gauss-Krüger 坐标系)是基于 高斯-克吕格投影 的一种常见的平面坐标系统,主要用于地理信息系统 (GIS)、测绘和工程等领域。该坐标系将地球表面的经纬度(地理坐标)通过一种投影方式转换为平面直角坐标,以便在二维平面中进行距离、面积和角度的计算。 一 投影原理 高斯平面直角坐标系使用的是 高斯-克吕格投影(Gauss-Krüger Projection),这是 横

Python字符编码及应用

字符集概念 字符集就是一套文字符号及其编码的描述。从第一个计算机字符集ASCII开始,为了处理不同的文字,发明过几百种字符集,例如ASCII、USC、GBK、BIG5等,这些不同的字符集从收录到编码都各不相同。在编程中出现比较严重的问题是字符乱码。 几个概念 位:计算机的最小单位二进制中的一位,用二进制的0,1表示。 字节:八位组成一个字节。(位与字节有对应关系) 字符:我们肉眼可见的文字与符号。