学习C#,既有难度,又有乐趣,最近在慢慢啃siki老师的C#初级教程视频,其中有道关于凯撒密码算法的题,蛮有意思的,现在把我的思考过程写下来,勉励自己继续好好学下去。
题目如下:
编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:
‘a’→’d’ ‘b’→’e’ ‘w’→’z’ …… ‘x’→’a’ ‘y’→’b’ ‘z’→’c’
‘A’→’D’ ‘B’→’E’ ‘W’→’Z’ …… ‘X’→’A’ ‘Y’→’B’ ‘Z’→’C’
对于其他字符,不进行加密。
拿到这道题,首先来思考下程序应当满足的功能:
一、需要定义一个字符串,来存储用户输入的字符。
二、需要遍历这个字符串中所有的元素,对于大写字母与小写字母进行加密操作,数字等其他字符就不操作了。(通过if语句可判断。)
三、需要输出加密后的字符串,也可以顺序输出加密后的单个字符。(一个一个连起来,就成串了。)
进一步思考加密的方法:
一、对于a到w,以及A到W,字母的后顺移了3个位置。
二、对于x到z,以及X到Z,字母向前顺移了23个位置。
这个涉及到需要将字符做加减法,我自己先在编译器里面试了试,直接用如下代码操作字符,编译器会报错。
char jiaMi_a='a'-3;\\ 错误 常量值“94”无法转换为“char”
因为赋值运算符右边的值,是int型的,而左边定义的是char,所以如果要使其不报错