#include<stdio.h>
int main(){
char str1[100],str2[100],*p,*q;//声明数组和指针。
int x;
gets(str1);//将输入的字符存入str1字符数组中
p=str1;
q=str2;
/*
*只处理字符的加密,其他的字符不加密
*/
while (*p){
//大写字母的加密
if ((*p)>='A'&&(*p)<='Z' ){
x=(*p)-'A'; //将所取得的字符依次向后偏移1,并将每次后移的字符存入输出数组str2中
x++;
(*q)=x%26+'A'; //对于X加密的结果是YZA,也就是26个字母组成一个循环的加密过程,也是%26的原因
q++;
x++;
(*q)=x%26+'A';
q++;
x++;
(*q)=x%26+'A';
}
//小写字母的加密
else if ( (*p)>='a' && (*p)<='z' ){
x=(*p)-'a'; //同上,不过是参照字符变为:a
x++; (*q)=x%26+'a'; q++;//同上
x++; (*q)=x%26+'a'; q++;
x++; (*q)=x%26+'a';
}
else (*q)=(*p);//不加密的字符直接存入输出数组
p++;//依次后移直到处理完所有输入数组的字符
q++;
}
(*q)=0;
printf("%s\n",str2);
return 0;
} |
|