A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 可心来了 中级黑马   /  2014-7-25 18:22  /  1129 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程实现对键盘输入的英文名句子进行加密。
用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,
若为其它字符时不变。比如245a95n加密后是245bcd95opq。(C语言)
下面是我的代码 可是当遇到字母有 x y z 应该就不行了 求解
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     char a [10];
  5.     char b[20];
  6.     int i = 0, j = 0;
  7.     printf("请输入原文:");
  8.     scanf("%s",&a);
  9.     while(a[i] != '\0')
  10.     {

  11.         if ((a[i] >= 65 && a[i] <= 90) || (a[i] >= 97 && a[i] <= 122))
  12.         {
  13.             b[j] = a[i] + 1;
  14.             b[j + 1] = a[i] + 2;
  15.             b[j + 2] = a[i] + 3;
  16.             j += 3;
  17.         }
  18.         else
  19.         {
  20.             b[j] = a[i];
  21.             j++;
  22.         }
  23.         i++;
  24.     }
  25.     b[j] = '\0';
  26.     i = 0;
  27.     printf("加密后为:");
  28.     while(b[i] != '\0')
  29.     {
  30.         printf("%c",b[i]);
  31.         i++;
  32.     }
复制代码



2 个回复

倒序浏览
#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"); }
回复 使用道具 举报
我错了。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马