C语言:将第i个字母变成第(26-i+1)个字母

 

 

 

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我理解了你的要求。以下是一份 C 语言代码,可以将密文翻译成原文,并将密文和原文写入数据文件。 ```c #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define MAX_LEN 1000 // 假设密文最长为 1000 个字符 char decrypt(char ch); int main() { char cipher[MAX_LEN+1]; // 存储密文 char plain[MAX_LEN+1]; // 存储原文 int i, j; // 从文件中读取密文 FILE *fp_in = fopen("cipher.txt", "r"); if (fp_in == NULL) { perror("Failed to open file \"cipher.txt\""); exit(EXIT_FAILURE); } fgets(cipher, MAX_LEN+1, fp_in); fclose(fp_in); // 翻译密文 for (i = 0, j = 0; cipher[i] != '\0'; i++, j++) { plain[j] = decrypt(cipher[i]); } plain[j] = '\0'; // 添加字符串结束符 // 在屏幕上显示密文和原文 printf("Cipher: %s\n", cipher); printf("Plain: %s\n", plain); // 将密文和原文写入数据文件 FILE *fp_out = fopen("result.txt", "w"); if (fp_out == NULL) { perror("Failed to open file \"result.txt\""); exit(EXIT_FAILURE); } fprintf(fp_out, "Cipher: %s\n", cipher); fprintf(fp_out, "Plain: %s\n", plain); fclose(fp_out); return 0; } // 翻译单个字符 char decrypt(char ch) { if (isalpha(ch)) { if (isupper(ch)) { return 'A' + 'Z' - ch; } else { return 'a' + 'z' - ch; } } else { return ch; } } ``` 这个程序中,`decrypt()` 函数用于翻译单个字符,它首先判断字符是否是字母,如果是则根据大小写转换规则进行翻译,否则直接返回原字符。 主函数中,先从文件中读取密文,然后遍历密文中的每个字符,调用 `decrypt()` 函数进行翻译,将翻译得到的原文存储在 `plain` 数组中。最后在屏幕上显示密文和原文,并将它们写入数据文件。 注意,这个程序假设密文中的每个字符都在 ASCII 码表中,如果密文中包含其他字符,比如中文字符,程序可能无法正确处理。如果需要支持其他字符集,需要对程序进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值