标签:华为上机题
题目描述
1、对输入的字符串进行加解密,并输出。
2加密方法为:
当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
其他字符不做变化。
3、解密方法为加密的逆过程。
接口描述:
实现接口,每个接口实现1个基本操作:
void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出
说明:
1、字符串以\0结尾。
2、字符串最长100个字符。
int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出
说明:
1、字符串以\0结尾。
2、字符串最长100个字符。
完整代码:
/****************************************************************************** Copyright (C), 2001-2011, Huawei Tech. Co., Ltd. ****************************************************************************** File Name : Version : Author : Created : 2012/03/12 Last Modified : Description : Function List : History : 1.Date : 2012/03/12 Author : Modification: Created file ******************************************************************************/ #include <stdlib.h> #include <string.h> #include <stdio.h> //1、对输入的字符串进行加解密,并输出。 // //2加密方法为: //当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a; //当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0; //其他字符不做变化。 // //3、解密方法为加密的逆过程。 int Encrypt (char password[], char result[]) { /* 代码在这里实现 */ while(*password!='\0') { if(*password=='9') { *result++='0'; password++; } else if(*password>='0'&&*password<'9') { *result++=*password+1; password++; } else if(*password=='Z') { *result++='a'; password++; } else if(*password=='z') { *result++='A'; password++; } else if(*password>='A'&&*password<'Z') { *result++=*password+33; password++; } else if(*password>='a'&&*password<'z') { *result++=*password-31; password++; } else *result++=*password++; } *result='\0'; return 0; } int unEncrypt (char result[], char password[]) { /* 代码在这里实现 */ while(*result!='\0') { if(*result>='1'&&*result<='9') { *password++=*result-1; result++; } else if(*result=='0') { *password++='9'; result++; } else if(*result>='b'&&*result<='z') { *password++=*result-33; result++; } else if(*result=='a') { *password++='Z'; result++; } else if(*result>='B'&&*result<='Z') { *password++=*result+31; result++; } else if(*result=='A') { *password++='z'; result++; } else *password++=*result++; } *password='\0'; return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:华为上机题
原文地址:http://blog.csdn.net/persever/article/details/46762427