华为机试题:字符转换Univesity

时间:2021-11-11 18:51:41

描述: 

简要描述

字符替换,按照替换规则,将输入的字符串做转换;其它字符不作处理。

 

详细描述:

题目背景

字母的替换规则,如下所示,A被E替换,B被C替换,依次类推。 

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
E C F A J K L B D G H I V W Z Y M N O P Q R S T U X 

a b c d e f g h i j k l m n o p q r s t u v w x y z
e r w q t y g h b n u i o p s j k d l f a z x c v m 

 

 


#include <stdlib.h>
#include "oj.h"



char* CharReplace(char* pSourceChar)
{
	if (pSourceChar == NULL)
	{
		return 0;
	}

	int   temp = 0;

	char bigchar[] = { "ECFAJKLBDGHIVWZYMNOPQRSTUX" };
	char smallchar[] = { "erwqtyghbnuiopsjkdlfazxcvm" };
	int i = 0;

	for (i = 0; pSourceChar[i] != '\0'; i++)
	{
		if (pSourceChar[i] >= 'A'&&pSourceChar[i] <= 'Z')
		{
			temp = (pSourceChar[i] - 'A');
			pSourceChar[i] = bigchar[temp];
		}
		else if (pSourceChar[i] >= 'a'&&pSourceChar[i] <= 'z')
		{
			temp = (pSourceChar[i] - 'a');
			pSourceChar[i] = smallchar[temp];
		}

	}
	pSourceChar[i] = '\0';
	return pSourceChar;
}