加密算法
题目描述:编写加密程序,加密规则为:将所有字母转化为该字母后的第三个字母,即A->D、B->E、C->F、…、Y->B、Z->C。小写字母同上,其他字符不做转化。输入任意字符串,输出加密后的结果。
例如:输入"I love 007",输出"L oryh 007"
输入描述:输入一行字符串,长度小于100。
输出描述:输出加密之后的结果。
C语言代码
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
gets(s);
int len = strlen(s);
for (int i = 0; i < len; i++)
{
if (s[i] >= 65 && s[i] <= 87) s[i] = s[i] + 3; //前23个大写字母
else if (s[i] >= 88 && s[i] <= 90) s[i] = (s[i] + 2) % 90 + 65; //后三个大写字母
else if (s[i] >= 97 && s[i] <= 119) s[i] = s[i] + 3; //前23个小写字母
else if (s[i] >= 120 && s[i] <= 122) s[i] = (s[i] + 2) % 122 + 97;//后三个小写字母
}
printf("%s", s);
return 0;
}
注意:1.scanf()函数遇到空格就停止读入了。方法一可将输入函数改为gets();方法二C语言中scanf()函数提供的“%[]”格式串可以用来进行多个字符的输入,并对结束符进行自定义,对于%[]还可以用^+任意字符(包括 EOF)来结束字符串的输入,如%[^EOF]就是直到有EOF 输入,字符串才中止。
2.对于后三个字母得特殊处理,且只能是加2来求余再加上首字母的值,因为加上的首字母值多含了一个1。