我提供我写的,楼上得我看了一下,好像是字符加密,并不是句子加密。
- //
- // main.c
- // 测试题7
- //
- /*
- 编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言)
-
- ----- 针对此题,26个字母中最后三个字母做了处理,使到z之后从a开始填补
- */
- #include <stdio.h> //调用printf需要引用的头文件
- int main()
- {
- int k;
- while (k!=0)//定义k判断何时退出程序,用来实现加密多个句子
- {
- char str1[20],str2[50];
- int i,j,n=0;
- printf("请输入你想加密的字符串:\n");
- scanf("%s",str1);
- for(i=0;str1[i]!='\0';++i)
- {
- if((str1[i]>='A'&&str1[i]<='W')||(str1[i]>='a'&&str1[i]<='w'))
- for(j=1;j<4;++j,++n)
- str2[n]=str1[i]+j;
- else if((str1[i]>='X'&&str1[i]<='Z')||(str1[i]>='x'&&str1[i]<='z'))
- switch(str1[i]){
- case 'x':str2[n++]='y';str2[n++]='z';str2[n++]='a';break;
- case 'y':str2[n++]='z';str2[n++]='a';str2[n++]='b';break;
- case 'z':str2[n++]='a';str2[n++]='b';str2[n++]='c';break;
- case 'X':str2[n++]='Y';str2[n++]='Z';str2[n++]='A';break;
- case 'Y':str2[n++]='Z';str2[n++]='A';str2[n++]='B';break;
- case 'Z':str2[n++]='A';str2[n++]='B';str2[n++]='C';break;
- }
- else
- {
- str2[n]=str1[i];
- ++n;
- }
-
- }
- str2[n]='\0';
- printf("%s\n",str2);
- printf("是否继续?继续请按( 0 ),退出请按其他键:");
- scanf("%d",&k);
- }
-
- return 0;
- }
复制代码 |