鱼C论坛

 找回密码
 立即注册
查看: 1701|回复: 2

[已解决]关于加密的问题

[复制链接]
发表于 2022-10-5 21:13:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Mike要给Alice写一封情书,但又怕别人看到后笑话他,于是他想到了一种简单的加密方法。他想到的方法很简单,就是把文中出现的每一个字母以它后面的第3个字母代替,文中出现的其他符号如数字、空格及标点符号仍保持不变。即:
A-->D, B-->E, ..., W-->Z, X-->A, Y-->B, Z-->C
a-->d, b-->e, ..., w-->z, x-->a, y-->b, z-->c
请你写一个程序,将Mike写的情书进行加密,并将加密后的内容输出。
假设该情书仅包含一段文字。
输入格式:
Mike写的情书,一段文字(一行,仅包含英文字符,包括:大小写字母、数字、标点符号等,长度不超过100个字符)。

输出格式:
加密后的情书。
输入样例:
Dear Alice, I'd like to see you in the northeast corner of teaching building 3 tomorrow evening.
输出样例:
Ghdu Dolfh, L'g olnh wr vhh brx lq wkh qruwkhdvw fruqhu ri whdfklqj exloglqj 3 wrpruurz hyhqlqj.


我的疑问的在于如果用一个字符数组来储存句子的话,用scanf输入遇到空格的时候会停止输入,不知道该怎么写。。。
最佳答案
2022-10-5 21:36:47
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <stdbool.h>

  4. int main(void) {
  5.     char buff[1024];
  6.     fgets(buff, 1024, stdin);
  7.     for(size_t i = 0; buff[i]; ++i) {
  8.         if(!isalpha(buff[i])) continue;
  9.         bool upper = isupper(buff[i]);
  10.         size_t offset = buff[i] - (upper ? 'A' : 'a');
  11.         offset = (offset + 3) % 26;
  12.         buff[i] = offset + (upper ? 'A' : 'a');
  13.     }
  14.     fputs(buff, stdout);
  15.     return 0;
  16. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-5 21:19:36 | 显示全部楼层
用getchar()来接收输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-5 21:36:47 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <stdbool.h>

  4. int main(void) {
  5.     char buff[1024];
  6.     fgets(buff, 1024, stdin);
  7.     for(size_t i = 0; buff[i]; ++i) {
  8.         if(!isalpha(buff[i])) continue;
  9.         bool upper = isupper(buff[i]);
  10.         size_t offset = buff[i] - (upper ? 'A' : 'a');
  11.         offset = (offset + 3) % 26;
  12.         buff[i] = offset + (upper ? 'A' : 'a');
  13.     }
  14.     fputs(buff, stdout);
  15.     return 0;
  16. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 01:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表