Julius Caesar
通过使用密码对其进行加密来保护他的机密信息。Caesar
的密码将每个字母移动一定数量的字母。如果转换让你越过了字母表的末尾,只需旋转回到字母表的前面。在旋转数为 3
的情况下,w
、x
、y
和 z
将映射到 z
、a
、b
和 c
。
创建一个接受字符串 s
(要加密的文本)和整数 k
(旋转因子)的函数。它应该返回一个加密的字符串。
输入输出格式
输入格式 第一行有一个字符串 s
,表示要加密的文本; 第二行有一个整数 k
,表示旋转因子。
输出格式 一行输出字符串,表示一个加密的字符串
代码
#include <stdio.h>
#include <string.h>
#include <math.h>
void caesar_Cipher (char a[],char b[],int n);
int main () {
char message[150],ctext[150];
int d;char empty;
scanf ("%d",&d);
scanf ("%c",&empty);
gets(message);
int n = strlen(message);
caesar_Cipher(message,ctext,d);
printf ("%s",ctext);
}
void caesar_Cipher (char a[],char b[],int d) {
strcpy(b,a);
int n = strlen(a);
for (int i = 0;i < n;i++) {
if ((b[i] >= 'a' && b[i] <= 'z' )|| (b[i] >= 'A' && b[i] <= 'Z')) {
int nn = abs(b[i] + d);
if (nn <= 'a' && nn > 'Z') {
b[i] = nn -'Z' +'A' - 1;
}
else if (nn > 'z') {
b[i] = nn -'z' +'a'-1;
}
else {
b[i] = nn;
}
}
}
}