Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

全角英数字のみ半角英数字にするには。

VisualC++6.00 を使用しています。 ダイアログのエディットボックスで入力された文字を、 全角英数字のみ半角英数字にしたいのですが、 LCMapString だと、カタカナも半角になってしまいます。 英数字のみ半角にするには、どのようにすればいいでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • bull1472
  • ベストアンサー率66% (2/3)
回答No.3

ほかにも正規表現のライブラリはいろいろありますね。 例えば BREGEXP DLL http://www.hi-ho.ne.jp/babaq/bregexp.html とか VC++ 6.0 の .lib も用意されていますし、文字列の置き換えも出来るようです。

EricchiEX08
質問者

お礼

お返事が大変遅くなり、すみません。 上記、BREGEXP.DLL で、無事実現できましたっ! しかも、簡単にっ! VCでPerlの正規表現が使えるなんて、感動ですっ! すごく便利ですっ 今までは、文字列の操作をたくさんする時は、 VCとPerlを組み合わせてましたが、 これからはこれが大活躍しそうですっ ありがとうございましたっ!

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

……#1 さん、質問よく読もうよ。「VisualC++6.00」って書いてあるでしょ? その人に .NET での解決法を教えてどうするんだよ……。 まあ、「正規表現をつかえ」という意見はもっともなんですが。 というわけで VC6.0 で正規表現を使うにはどうしたらいいかですが、やはり Boost の正規表現が一番手っ取り早いのではないかとおもいます。 http://www.boost.org/ 英語が読めるのであれば、以下のページで書かれている regex_replace を使って #1 さんご呈示のプログラムを書き換えるのは簡単かと思います。 http://www.boost.org/doc/libs/1_57_0/libs/regex/doc/html/boost_regex/ref/regex_replace.html

EricchiEX08
質問者

補足

お返事が遅くなり、申し訳ありません。 アドバイスありがとうございます。 boostの正規表現を用いてみようと思い、 VisualC++6.00には、そのライブラリがないようでしたので、 boostをインストールし、 ビルド、パスを通すなどの設定を行い、 下記ヘッダファイルのインクルードを記述してコンパイルすると、  #include <boost/regex.hpp> 以下のエラーが出てしまいました。 visualc.hpp(43) : fatal error C1189: #error : "Compiler not supported or configured - please reconfigure" boostのサイトによると、 2008 以上でないと使用できないようですね。 VCで正規表現が使えたらすごく便利かと思ったのですが、残念です。。。 でも、boostの存在を知らなかったので、すごく参考になりました。 今後、8 以上にUPする事があったら、使ってみたいと思います! ありがとうございました。 他に何かやり方があったら、ご教授下さい。 よろしくお願いします。

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

正規表現を用いる。 キーワード「全角英数字のみを半角に変換するには?」でググったら、 検索結果TOPに「www.atmarkit.co.jp」さんのサイトがあります。

すると、全ての回答が全文表示されます。

関連するQ&A