• 締切済み

ヘッダーファイル"jctype"について

昨夜はお世話になりました。 今日はCのヘッダファイル"jctype"についてです。 例の文字列検索プログラム作成中に、 "iskanji"関数という存在に気づきました。 関数名から日本語環境用と思われますが、 jctypeがBorland C++ Compiler には存在しないようですので、 どなたかその関数を利用する方法を教えてください。 宜しくお願いします。

みんなの回答

  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.2

念のため補足しておきますが、iskanjiという関数は現状のCコンパイラには含まれていないような気がします。 「iskanji()もないようです」と書いたはずですが。 また、十分なマニュアル、ドキュメントがない場合には、ヘッダファイル自体が重要な情報源となります。 まず、ヘッダファイルの内容を自分の目で確認してください。難しい表記が目立つのでつらくなると思いますが、最低限度とはいえ、紛れもなく正しい情報が入っています。 自分の使いたい関数が使えるのかそうでないのか、自分で調べられるようにならないと、いつまでも他人に迷惑をかけることになりますよ。 また、Borland系の処理系をご使用であれば、grepというユーティリティが使えるはずです。指定した文字列が含まれるファイルを探すためのツールです。 コマンドラインから、includeのフォルダにcdで移動して、 grep -dn iskanji *.h とすれば、iskanjiが含まれているヘッダファイルが見つからないことがわかるはずです。(ひょっとしたら見つかるかもしれませんけど) 続いて、 grep -dn ismbc *.h とすれば、たくさんの行が見つかるはず。 お試しください。 指定した文字列が含まれるファイルを検索する、という処理はエクスプローラでも十分利用できますけれど。

crm
質問者

お礼

YoshiMu 様 大変遅くなり恐縮ですが、 補足をありがとうございます。 まさに仰るとおりですね。 現在、全角半角判定を行う関数を作り、 プログラムで利用しております。 私の周りではボーランドを利用している人がいなく、 又、私自身もC言語を勉強し始めてまもないものですが、 質問に値しない質問をしてしまったと反省しております。 どうぞ、今後とも宜しくお願い致します。

  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.1

そういえば、jctypeってVC++6.0にもC++Bulder5.0にも存在しませんね。iskanji()もないようです。 両者にあるそれらしきヘッダファイルは"mbstring.h"みたいですね。Borland C++にもあるのではないかと思います。 ここにある、_ismbc??????系の関数を使用されてはいかがでしょうか? 参考URLはマイクロソフトのものですが、ざっと見た感じなので自信はありませんけど、使い方は変わらないようですから十分役に立つと思います。

参考URL:
http://www.microsoft.com/japan/developer/library/vccore/_crt_character_classification.htm
crm
質問者

お礼

YoshiMu 様へ お返事ありがとうございます。 早速、"iskanji" 及び "iskanji2"を、 ヘッダファイル "mbstring.h" で試してみましたが、 残念ですがエラーになってしまいました。 やはり一文字ずつ照合(==演算子)するのは大変ですね。 今日のことですが、 一文字アルファベットが 全角文字の2バイト目にヒットする状況を、 何とか回避しましたけれど、 その弊害?として、 検索文字列に全角文字を指定しても未検出になってしまいます。 やはり文字コードは難しいですね。 結局はstrcmp等を利用せざるを得ないんですかね。 (あるものは利用すべきですが...) サイト方も参考にさせていただきました。 どうもありがとうございました。 ismbc?????関数で挑戦してみます。

関連するQ&A