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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用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. }
复制代码

11 个回复

正序浏览
飞鱼fly 发表于 2015-5-25 10:37
include
#include
void print(char ch)

ch-26+i   是怎么打印的啊
回复 使用道具 举报
你好  你现在弄懂了吗
回复 使用道具 举报
飞鱼fly 发表于 2015-5-25 10:37
include
#include
void print(char ch)

自己跑到一点问题都没有  有没有指教下
回复 使用道具 举报
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;
        }
回复 使用道具 举报
LLLX77 中级黑马 2015-4-30 00:04:36
8#
感谢分享!!!!!
回复 使用道具 举报
当输入为XYZ时,把C++改成
c++;
C-26;
即可实现
回复 使用道具 举报
zhaohe513 发表于 2015-3-3 11:13
我怕不知到X的后3个字母是yza吗,

我的意思是如果等于x直接  printf("yza");   不就行了。
回复 使用道具 举报
87526845 发表于 2015-3-3 07:43
直接条件筛选   如果是x就输出yza 同理y,z

我怕不知到X的后3个字母是yza吗,
回复 使用道具 举报
枫宇翔 发表于 2015-3-3 09:29
你确定,你这个程序能行,我怎么看着有问题呢

看着呵呵呵
回复 使用道具 举报
你确定,你这个程序能行,我怎么看着有问题呢
回复 使用道具 举报
直接条件筛选   如果是x就输出yza 同理y,z
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马