关于加密的问题
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输入遇到空格的时候会停止输入,不知道该怎么写。。。 用getchar()来接收输入 #include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
int main(void) {
char buff;
fgets(buff, 1024, stdin);
for(size_t i = 0; buff; ++i) {
if(!isalpha(buff)) continue;
bool upper = isupper(buff);
size_t offset = buff - (upper ? 'A' : 'a');
offset = (offset + 3) % 26;
buff = offset + (upper ? 'A' : 'a');
}
fputs(buff, stdout);
return 0;
}
页:
[1]