黑马程序员技术交流社区

标题: 基础测试编程实现对键盘输入的英文名句子进行加密。 [打印本页]

作者: zhaohe513    时间: 2015-3-3 00:12
标题: 基础测试编程实现对键盘输入的英文名句子进行加密。
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
我的问题是输入x.y.z时怎么输出不会,求解

  1. #include <stdio.h>

  2. main()
  3. {
  4.      char c;
  5.        
  6.      printf("please input a string:");

  7.      while((c=getchar())!='\n')   
  8.         {
  9.           if(c>='A'&&c<='W'||c>='a'&&c<='w')
  10.           {
  11.        
  12.          for(int i=0;i < 3; i++)
  13.          {
  14.                        c++;
  15.                      printf("%c",c);
  16.          
  17.            }

  18.            }

  19.          else if(c>='X'&&c<='Z'||c>='x'&&c<='z')
  20.          {
  21.                 c=(c+1)-26;
  22.                 printf("%c",c); //y
  23.                 printf("%c",c+1);//z
  24.                 printf("%c",c+2);//a

  25.          }
  26.          else if(c<='9'&&c>='0')
  27.          {
  28.                  printf("%c",c);

  29.          }
  30.      
  31.          }  
  32.    
  33. printf("\n");

  34. return 0;
  35. }
复制代码

作者: 87526845    时间: 2015-3-3 07:43
直接条件筛选   如果是x就输出yza 同理y,z
作者: 枫宇翔    时间: 2015-3-3 09:29
你确定,你这个程序能行,我怎么看着有问题呢
作者: zhaohe513    时间: 2015-3-3 11:12
枫宇翔 发表于 2015-3-3 09:29
你确定,你这个程序能行,我怎么看着有问题呢

看着呵呵呵
作者: zhaohe513    时间: 2015-3-3 11:13
87526845 发表于 2015-3-3 07:43
直接条件筛选   如果是x就输出yza 同理y,z

我怕不知到X的后3个字母是yza吗,
作者: 87526845    时间: 2015-3-3 12:29
zhaohe513 发表于 2015-3-3 11:13
我怕不知到X的后3个字母是yza吗,

我的意思是如果等于x直接  printf("yza");   不就行了。
作者: wx_BZhrvVik    时间: 2015-4-29 16:17
当输入为XYZ时,把C++改成
c++;
C-26;
即可实现
作者: LLLX77    时间: 2015-4-30 00:04
感谢分享!!!!!
作者: 飞鱼fly    时间: 2015-5-25 10:37
include<stdio.h>
#include<string.h>
void print(char ch)
{
        if(ch<='9'&&ch>='0')
                putchar(ch);
    else if(ch>='A'&&ch<='Z')
        {  for(int i=1;i<=3;i++)
        {if ((ch+i)>'Z')
        putchar(ch-26+i);       
           else
                   putchar(ch+i);
        }
        }
         if(ch>='a'&&ch<='z')
        {  for(int i=1;i<=3;i++)
        {if ((ch+i)>'z')
        putchar(ch-26+i);       
           else
                   putchar(ch+i);
        }
        }

}

       
        int main()
        {
                char str[10000];
                int i,len;
                gets(str);
                len=strlen(str);
                for(i=0;i<len;i++)
                        print(str[i]);
                return 0;
        }
作者: 飞鱼fly    时间: 2015-5-25 10:39
飞鱼fly 发表于 2015-5-25 10:37
include
#include
void print(char ch)

自己跑到一点问题都没有  有没有指教下
作者: kakade    时间: 2015-5-26 01:44
你好  你现在弄懂了吗
作者: Never_Yg    时间: 2015-6-3 14:53
飞鱼fly 发表于 2015-5-25 10:37
include
#include
void print(char ch)

ch-26+i   是怎么打印的啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2