アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

英数字のみ半角にするには、どのようにすればいいでしょうか。
よろしくお願いします。

A 回答 (3件)

正規表現を用いる。



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

……#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/ …

この回答への補足

お返事が遅くなり、申し訳ありません。
アドバイスありがとうございます。

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する事があったら、使ってみたいと思います!
ありがとうございました。

他に何かやり方があったら、ご教授下さい。
よろしくお願いします。

補足日時:2014/12/05 23:53
    • good
    • 0

ほかにも正規表現のライブラリはいろいろありますね。



例えば BREGEXP DLL http://www.hi-ho.ne.jp/babaq/bregexp.html とか

VC++ 6.0 の .lib も用意されていますし、文字列の置き換えも出来るようです。
    • good
    • 0
この回答へのお礼

お返事が大変遅くなり、すみません。

上記、BREGEXP.DLL で、無事実現できましたっ!
しかも、簡単にっ!
VCでPerlの正規表現が使えるなんて、感動ですっ!
すごく便利ですっ

今までは、文字列の操作をたくさんする時は、
VCとPerlを組み合わせてましたが、
これからはこれが大活躍しそうですっ

ありがとうございましたっ!

お礼日時:2014/12/09 21:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!