zoukankan      html  css  js  c++  java
  • HW--字符串加解密

    package t0817;
    import java.util.Scanner;
    
    public class StringEncrypt {
        public static void main(String[] args){
               Scanner scanner_1 = new Scanner(System.in);
               String str_1 = scanner_1.nextLine();
               char chPass[]=str_1.toCharArray();
               char chResu[]=new char[str_1.length()];
               
               Scanner scanner_2 = new Scanner(System.in);
               String str_2 = scanner_2.nextLine();
               char chResu2[]=str_2.toCharArray();
               char chPass2[]=new char[str_2.length()];
               
               Encrypt(chPass,chResu);
               System.out.println(chResu);
               unEncrypt(chResu2,chPass2);
               System.out.println(chPass2);
        }
        /*
         * 在该函数中实现字符串加密并输出
         */
         static void Encrypt (char aucPassword[], char aucResult[]){
            for(int i=0;i<aucPassword.length;i++){
                if(aucPassword[i]>='a'&&aucPassword[i]<='z'){  //小写字母后面一个(+1),再变大写字母(-32)
                    if(aucPassword[i]=='z')
                        aucResult[i]='A';
                    else
                    {
                        aucResult[i]=(char)(aucPassword[i]+1-32);                   
                    }
                }
                else if(aucPassword[i]>='A'&&aucPassword[i]<='Z'){  // 大写字母变小写
                     if(aucPassword[i]=='Z')
                         aucResult[i]='a';
                      else
                     {
                        aucResult[i]=(char)(aucPassword[i]+1+32);                  
                     }
                }
                else if(aucPassword[i]>='0'&&aucPassword[i]<='9'){ // 数字
                     if(aucPassword[i]=='9')
                         aucResult[i]='0';
                     else
                        aucResult[i]=(char)(aucPassword[i]+1);                
                }
                else aucResult[i]=aucPassword[i];  //其他字符保持不变化
                
                
            }
            
        }
        /*
         * 在该函数中实现字符串解密并输出
         */
         static int unEncrypt (char result[], char password[]) {
            for(int i=0;i<result.length;i++){
                if(result[i]>='a'&&result[i]<='z'){  //小写字母变大写
                    if(result[i]=='a')
                        password[i]='Z';
                    else
                    {
                        password[i]=(char)(result[i]-32-1);                   
                    }
                }
                else if(result[i]>='A'&&result[i]<='Z'){  // 大写字母变小写
                    if(result[i]=='A')
                        password[i]='z';
                    else
                    {
                        password[i]=(char)(result[i]+32-1);                  
                    }
                }
                else if(result[i]>='0'&&result[i]<='9'){ // 数字
                    if(result[i]=='0')
                        password[i]='9';
                    else
                        password[i]=(char)(result[i]-1);                
                }
                else password[i]=result[i];  //保持不变化
                
            }// for循环
            return 0;
        }//j解码函数
        
    }

    题目描述

    1、对输入的字符串进行加解密,并输出。

    2加密方法为:

    当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

    当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

    其他字符不做变化。

    3、解密方法为加密的逆过程。

    接口描述:

        实现接口,每个接口实现1个基本操作:

    void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出

    说明:

    1、字符串以结尾。

    2、字符串最长100个字符。

    int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出

    说明:

    1、字符串以结尾。

        2、字符串最长100个字符。

    知识点 字符串
    运行时间限制 10M
    内存限制 128
    输入

    输入说明
    输入一串要加密的密码
    输入一串加过密的密码

    输出

    输出说明
    输出加密后的字符
    输出解密后的字符

    样例输入 abcdefg BCDEFGH
    样例输出 BCDEFGH abcdefg
  • 相关阅读:
    warning C4018: “<”: 有符号/无符号不匹配
    安装VS提示系统找不到指定路径
    C#调用非托管dll
    指针转引用
    C语言文件操作fclose在NDK引起的BUG
    ADT开发AndroidManifest.xml file missing错误
    利用Visual GDB在Visual Studio中进行Android开发
    OpenCv实现两幅图像的拼接
    C++读取文件夹中所有的文件或者是特定后缀的文件
    WORD2007多级列表
  • 原文地址:https://www.cnblogs.com/snowwhite/p/4737115.html
Copyright © 2011-2022 走看看