C++Builder 2010によるひらがな・カタカナの変換

4/21 – Webセミナー「Delphi / C++Builder 旧バージョンからの移行」で質問があったひらがな・カタカナの変換方法。

C++ Builder Tipにも「全角・半角・ひらがな・カタカナの変換」の記事がありますが、AnsiStringなので古いですね。
後で修正します。

UnicodeStringなら次のようになります。
プロジェクトの設定で、「_TCHARのマップ先」を「wchar_t」に設定しています。

#include <boost/scoped_array.hpp>

UnicodeString text = L"変換する文字列";
//DWORD flags = LCMAP_FULLWIDTH; //全角文字にします。
//DWORD flags = LCMAP_HALFWIDTH; //半角文字にします。
//DWORD flags = LCMAP_HIRAGANA; //ひらがなにします。
  DWORD flags = LCMAP_KATAKANA; //カタカナにします。

const int size = text.Length() + 1;
boost::scoped_array<wchar_t> s(new wchar_t[size]);
ZeroMemory(s.get(), size);
LCMapString(GetUserDefaultLCID(),
            flags,
            text.c_str(),
            size,
            s.get(),
            size);
UnicodeString newtext = s.get();

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください