华为OJ平台试题 —— 字符串:字符串加解密

字符串加解密

华为OJ平台试题 —— 字符串:字符串加解密_第1张图片


代码:

#include
#include



void  Encrypt (char aucPassword[],  char aucResult[])
{
	int len, i;
	len = strlen(aucPassword);
	
	for( i = 0; i < len +1; i++ )
	{
		 if ( aucPassword[i] >= '0' && aucPassword[i] <= '8' )
		 	aucPassword[i] = aucPassword[i] + 1;
		 else if ( aucPassword[i] == '9')
		 	aucPassword[i] = '0';	
		 else if ( aucPassword[i] >= 'a' && aucPassword[i] <= 'y' )
		 	aucPassword[i] = aucPassword[i] + 1 - 32;
		 else if ( aucPassword[i] == 'z')
		 	aucPassword[i] = 'a' - 32;
		 else if ( aucPassword[i] >= 'A' && aucPassword[i] <= 'Y' )
		 	aucPassword[i] = aucPassword[i] + 1 + 32;
		 else if ( aucPassword[i] == 'Z')
		 	aucPassword[i] = 'A' + 32;	 	
	}
	strcpy(aucResult, aucPassword);
}


void unEncrypt (char result[], char password[])
{
	int  len, i;
	len = strlen(result);
	
	for( i = 0; i < len + 1; i++ )
	{
		 if ( result[i] > 'A' && result[i] <= 'Z' )  /* ´óд×Öĸ */
		 	result[i] = result[i] - 1 + 32;
		 else if ( result[i] == 'A')				 /* ÌØÊâÇé¿ö */ 
		 	result[i] = 'Z' + 32;	 
		 else if ( result[i] >= 'b' && result[i] <= 'z' ) /* Сд×Öĸ */ 
		 	result[i] = result[i] - 1 - 32;
		 else if ( result[i] == 'a')						/* ÌØÊâÇé¿ö */ 
		 	result[i] = 'z' - 32;
		 else if  ( result[i] >= '1' && result[i] <= '9' )
		 	result[i] = result[i] - 1;
		 else if ( result[i] == '0')
		 	result[i] = '9';		
	}
	strcpy(password,result); 	
}


int main(void)
{
	char sourceone[100], resultone[100], sourcetwo[100], resulttwo[100];
	
	gets(sourceone);
	gets(sourcetwo);
	Encrypt(sourceone, resultone);		
	unEncrypt (sourcetwo, resulttwo);
	
	puts(resultone);
	puts(resulttwo);
}


注意: 如果将输入字符串和输出字符串格式改为scanf 和printf,在华为的系统会出现格式错误!

你可能感兴趣的:(华为机试)