gpt4 book ai didi

凯撒密码,c 语言,来自现有文件

转载 作者:行者123 更新时间:2023-11-30 21:03:55 24 4
gpt4 key购买 nike

我正在尝试使用凯撒密码从文件中进行解密。该文件是 .txt,程序应该读取该文件,对其进行解密(4 个字母的字母移位),然后打印解密的消息。我开始时遇到困难,到目前为止我所拥有的只是:

#include <stdio.h>
#include <stdlib.h>

int main()
{

double val;
FILE *fp;
fp = fopen("encrypted.txt", "r"); /* Opens encrypted.txt for reading */
fscanf(fp, "%lf", &val);

}

任何建议都值得赞赏..而且我更喜欢不使用循环。谢谢!

最佳答案

由于您对每个字符执行“解密”,因此您可以在循环内使用 getc(fp) (我看不出您打算如何在这种情况下避免循环...),并根据需要修改结果。

我不确定你所说的 4 个字母移位是什么意思,但我猜你的意思是 -

c += 4;
if (c > 'z' && c <= 'z' + 4)
c = c -'z' + 'a';
else if (c > 'Z' && c <= 'Z' + 4)
c = c -'Z' + 'A';

c = (c >= 'a' && c <= 'z') ? ((c + 4 - 'a') % ('z'-'a')) + 'a' : ((c + 4 - 'A') % ('Z'-'A')) + 'A'

这些可以进一步简化(例如 - 因为 'z' - 'a' == 'Z' -'A'),您甚至可以将它们转换为常量,尽管编译器可能会为您这样做。为了更好的可读性,我将其保留在此处

关于凯撒密码,c 语言,来自现有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18947284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com