1

ユーザー入力文字列のaeiouをbfjpvに置き換えたい。これが機能していないコードです:-

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;
    }

}

1文字追加するにはどうすればよいですか?つまり、どうすれば。に置き換えることができますab

4

3 に答える 3

10

あなたはただすることができます

$char++;

代わりに

$char = $char + 1;

また、交換を行うためにループする必要はありません。tr演算子を次のように使用するだけです。

($new_string = $string) =~ tr [aeiou] [bfjpv];
于 2010-10-02T15:58:22.970 に答える
7
$string =~ tr/aeiou/bfjpv/;

全体の仕事をします。perlopのマニュアルを参照してください。

于 2010-10-02T16:07:54.247 に答える
4
$char = chr(ord($char) + 1);

ord=文字を整数に変換

chr=整数を文字に変換

于 2010-10-02T15:52:38.937 に答える