• ベストアンサー

アルファベットの変換?

例えば、aと入力されたらbと、bならcと…のようにひとつシフトさせるには、どうすればよいのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

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の場合の処理が必要になりますが…

回答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なのでそのまま 次の文字になる う~~んん、スマートじゃない気もするが、おいらにはここまで、、、

関連するQ&A

専門家に質問してみよう