- ベストアンサー
アルファベットの変換?
例えば、aと入力されたらbと、bならcと…のようにひとつシフトさせるには、どうすればよいのですか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
tr演算子で変換すればいいのでは。 http://www.rfs.jp/sb/perl/05/tr.html 例 $str =~ tr/a-z/b-za/; # a→b , b→c , … , z→a
その他の回答 (2)
- qtea
- ベストアンサー率77% (38/49)
回答No.3
一文字なら… $c = "a"; $c++; print $c; とか $c1 = "a"; $c2 = chr(ord($c1)+1); print $c2; という手もあります。 zの場合の処理が必要になりますが…
- umasikajiro
- ベストアンサー率67% (545/803)
回答No.1
#! /usr/bin/perl $a = 'えーaびーbしーcでーdぜっと小zぜっと大Z '; $a =~ s/[a-z]/pack('C',ord($&)+1-($& eq 'z' | $& eq 'Z')*26)/ieg; print $a; __END__ ## -($& eq 'z' | $& eq 'Z')*26) は 文字がzまたはZのときに-26してa,Aに変換 a~yのときは -0なのでそのまま 次の文字になる う~~んん、スマートじゃない気もするが、おいらにはここまで、、、