我想与在用户输入的字符串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

有帮助吗?

解决方案

$char = chr(ord($char) + 1);

ORD =转换字符到整数

CHR =整型转换为字符

其他提示

您可以做

$char++;

代替

$char = $char + 1;

此外,你真的不需要循环做替换。只是使用 tr 操作者为:

($new_string = $string) =~ tr [aeiou] [bfjpv];
$string =~ tr/aeiou/bfjpv/;

请问整个作业。请参阅 perlop中手动

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top