noip2008初赛-字符串替换

noip2008C_4_1(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串S’由26个字母组成,它是a~z的任一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,即 S中的A用该字母的大写替换,S中的a用该字母的小写替换;S’中的第二个字母是字母B 和b的替换字母,即S中的B用该字母的大写替换,S中的b用该字母的小写替换;…… 以此类推。


样例输入:
hello noip
abcdefgacjklmnaxqrstuvwxyz


样例输出:
aella nacx


var
str:string;//明文
change:string;//密钥

procedure CheckChangeRule;//将密钥字符串全部矫正为小写字符串
var
i:integer;
begin
	for i:=1 to 26 do
	begin
		if (change[i]>='A') and (change[i]<='Z') then
		change[i]:=chr(ord(change[i])-ord('A')+ord('a'));
	end;
end;

procedure ChangeString;
var
len,i:integer;
begin
	len:=length(str);
	for i:=1 to len do
	begin
		if (str[i]>='A') and (str[i]<='Z') then
		begin
			str[i]:=upcase(change[ord(str[i])-ord('A')+1]);
		end
		else
		begin
			str[i]:=change[ord(str[i])-ord('a')+1];
		end;
	end;
end;

begin
	readln(str);
	readln(change);
	CheckChangeRule;
	ChangeString;
	writeln(str);
end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值