黑马程序员技术交流社区
标题:
各位大神 请教一个问题
[打印本页]
作者:
可心来了
时间:
2014-7-25 18:22
标题:
各位大神 请教一个问题
编程实现对键盘输入的英文名句子进行加密。
用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,
若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言)
下面是我的代码 可是当遇到字母有 x y z 应该就不行了 求解
#include <stdio.h>
int main()
{
char a [10];
char b[20];
int i = 0, j = 0;
printf("请输入原文:");
scanf("%s",&a);
while(a[i] != '\0')
{
if ((a[i] >= 65 && a[i] <= 90) || (a[i] >= 97 && a[i] <= 122))
{
b[j] = a[i] + 1;
b[j + 1] = a[i] + 2;
b[j + 2] = a[i] + 3;
j += 3;
}
else
{
b[j] = a[i];
j++;
}
i++;
}
b[j] = '\0';
i = 0;
printf("加密后为:");
while(b[i] != '\0')
{
printf("%c",b[i]);
i++;
}
复制代码
作者:
菜鸟_琦
时间:
2014-10-14 13:38
#include<stdio.h> void main() { char a [10]; char b [20]; int i = 0, j = 0; printf("请输入原文:"); scanf("%s",&a); while(a[i] != '\0') { if ((a[i] >= 'a' && a[i] <= 'w') || (a[i] >= 'A' && a[i] <= 'W')) { b[j] = a[i] + 1; b[j + 1] = a[i] + 2; b[j + 2] = a[i] + 3; j += 3; } else if(a[i]=='x'||a[i]=='X') { b[j] = a[i] + 1; b[j + 1] = a[i] + 2; b[j + 2] = a[i] + 3-26; j += 3; } else if(a[i]=='y'||a[i]=='Y') { b[j] = a[i] + 1; b[j + 1] = a[i] + 2-26; b[j + 2] = a[i] + 3-26; j += 3; } else if(a[i]=='z'||a[i]=='Z') { b[j] = a[i] + 1-26; b[j + 1] = a[i] + 2-26; b[j + 2] = a[i] + 3-26; j += 3; } else { b[j] = a[i]; j++; } i++; } b[j] = '\0'; i = 0; printf("加密后为:"); while(b[i] != '\0') { printf("%c",b[i]); i++; } printf("\n"); }
作者:
菜鸟_琦
时间:
2014-10-14 13:41
我错了。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2