黑马程序员技术交流社区
标题:
hi,麻烦帮忙看看
[打印本页]
作者:
fudanxiaoan
时间:
2015-7-30 15:40
标题:
hi,麻烦帮忙看看
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言) 输入的是 Z 该怎么办呢?求解
作者:
白方镜世
时间:
2015-7-30 19:06
应该是循环吧,如果是z就变成abc
作者:
liusuizuoyou
时间:
2015-7-30 19:15
打印 (z-26 )+1 (z-26)+2 ( z-26)+3
作者:
wowthe1st
时间:
2015-7-30 19:37
代码
#include <stdio.h>
int main()
{
int i=0;
char buf[100],dest[300],*p,c;
printf("请输入要加密的字符串\n");
scanf("%s",buf);
for(p=buf;(c=*p)!=0;p++)
{
if(c>='a'&&c<='z')//判断是否是小写字母
{
dest[i++]=(++c>'z'?c-'z'+'a'-1:c);//是小写字母则将该字母替换成其后三个字母,其后三个字母超出'z'的情况,则超出'z'后从'a'重新计算
dest[i++]=(++c>'z'?c-'z'+'a'-1:c);
dest[i++]=(++c>'z'?c-'z'+'a'-1:c);
}
else if(c>='A'&&c<='Z')//判断是否是大写字母
{
dest[i++]=(++c>'Z'?c-'Z'+'A'-1:c);//是大写字母则将该字母替换成其后三个字母,其后三个字母超出'Z'的情况,则超出'Z'后从'A'重新计算
dest[i++]=(++c>'Z'?c-'Z'+'A'-1:c);
dest[i++]=(++c>'Z'?c-'Z'+'A'-1:c);
}
else //非字母则原样保留
dest[i++]=c;
}
dest[i]=0;
printf("加密后为%s\n",dest);
return 0;
}
复制代码
作者:
fudanxiaoan
时间:
2015-7-31 17:31
wowthe1st 发表于 2015-7-30 19:37
代码
我已经决解了,谢谢你了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2