我想在用户输入的字符串中用bfjpv替换aeiou。这是不起作用的代码: -
print "Enter any String :";
while(($string = <>) ne "\n"){
@arr = split(//,$string);
for($i = 0 ; $i < $#arr ; $i++){
$char = $arr[$i];
if($char eq 'a' || $char eq 'e' || $char eq 'i' || $char eq 'o' || $char eq 'u'){
$char = $char + 1;
}
print $char;
}
}
我该怎么做才能添加一个角色?我的意思是如何将a
替换为b
。
答案 0 :(得分:10)
你可以做到
$char++;
取代
$char = $char + 1;
另外,你真的不需要循环来进行更换。只需使用tr
运算符:
($new_string = $string) =~ tr [aeiou] [bfjpv];
答案 1 :(得分:7)
$string =~ tr/aeiou/bfjpv/;
整个工作。请参阅perlop manual。
答案 2 :(得分:4)
$char = chr(ord($char) + 1);
ord =将字符转换为整数
chr =将整数转换为字符