c++ - C++中的凯撒密码

标签 c++ string encryption

首先,我已经学习了 4 周的 C++ 类(class),但我什至还不知道循环,所以请讲儿戏?

好的,所以我应该从文件中读取十二个字符的字符串(加上 NULL 等于十三),然后将字母向后移动三位,然后将我的结果打印到屏幕和文件。除了移动字母外,我对一切都很好。我不想编写数英里的代码来单独获取每个字符,减去三个,然后重新组合字符串,但我不确定如何一次处理整个字符串。有人可以推荐一种非常简单的方法吗?

最佳答案

如果您处理的是简单的字母(A 到 Z 或 a 到 z),那么您可以假设内部代码是线性的。

字母编码为数字,介于 0 和 127 之间。A 编码为 65,B 编码为 66,C 编码为 67,Z 编码为 90。

为了移动字母,您只需像更改数字一样更改内部字母代码,基本上只需从字符中减去 3。但要注意边缘情况,因为将“A”减去 3 会得到“>”(代码 62)而不是“X”(代码 88)。您可以使用“if”语句或模运算符(“%”)来处理它们。

这是一个 ASCII characters table帮助你

关于c++ - C++中的凯撒密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522778/

相关文章:

java - 字符串与 == 比较的奇怪效果

Snowflake 平台上传输数据的加密

java - 如何在服务器和 GWT 客户端之间使用 RSA?

c++ - 从基类指针获取对两个具有不同类型的派生成员变量的访问。

c++ - C++ 实现是否允许假定任何右值引用函数参数是唯一的?

javascript - 用双引号包裹一个 javascript 变量

c 读取字符串输入错误

ios - 在 mac 终端中将 pem 格式的公钥转换为 der 格式时出错

c# - 如何禁用向上/向下键滚动 Visual Studio 中的方法重载?

c++ - 如何自动导出 C++ 源中的名称以在 DLL 中使用