fetus Diary

2007/01/18(木) - ROT13

何を血迷ったんだか、こんなコードをさくっと書いてしまった

namespace StringUtil
{
  std::wstring Rot13Encode(const std::wstring &str)
    {
    std::wstring result(str);
    for(std::wstring::iterator it = result.begin(); it != result.end(); ++it)
      {
      wchar_t & c = *it;
      if(('A' <= c && c <= 'M') || ('a' <= c && c <= 'm'))
        {
        c += 13;
        }
      else if(('N' <= c && c <= 'Z') || ('n' <= c && c <= 'z'))
        {
        c -= 13;
        }
      }
    return result;
    }
  }

今時 Rot13 なんてつかわねぇよ、って感じ。

しっかし、wchar_t だと処理が楽でいいわぁ…。

ちなみに、デコード関数は inline std::wstring Rot13Decode(const std::wstring &str){ return Rot13Encode(str); } とでも書いておけばヨロシイんではないかと。別に分ける意味は感じませんが。(敢えて言うなら、気分的に良いかも、という程度)

# インデントは懐かしの Symbian スタイル。本当にスタイルをあわせようと思ったら aTargetString とか、Rot13EncodeL とかにしないといけないけどな(ぉ

関係あるかも?

このエントリは次のエントリから参照されているみたいです

コメント

コメントはありません。

名前
メール
コメント

※HTML タグは使えません。HTTP URL には自動リンクが張られます。

Captcha
画像から読み取れる文字を入力: