クラス langedge::mbcsutil::MBCSUtilIF

マルチバイト文字/文字列に関するヘルパー関数群を提供するインタフェースクラス. [詳細]

#include <mbcsutil.h>

すべてのメンバ一覧

Public メソッド

virtual int getCharcode () const =0
 自オブジェクトの文字コードを得る.
bool isEUC () const
 EUCコード系か.
bool isSJIS () const
 SJISコード系か.
virtual int isJChar (unsigned char ch) const =0
 日本語文字の1バイト目か (文字コード依存).
virtual int isJChar2 (unsigned char ch) const =0
 日本語文字の2バイト目か (文字コード依存).
virtual int isWordChar (unsigned int ch) const =0
 日本語の1バイト目あるいは英数字か (つまり単語構成文字か).
virtual unsigned char getHiragana1st () const =0
 ひらがな文字の1バイト目を得る.
virtual unsigned char getKatakana1st () const =0
 カタカナ文字の1バイト目を得る.
virtual unsigned short hanToZen (unsigned char ch) const =0
 半角文字から全角文字へ変換する.
virtual void strHanToZen (const char *src, std::string &dest, bool onlyKana=false, bool remCtrl=false) const =0
 マルチバイト文字列から 全角文字列に変換する.
virtual void strHanToZen (const char *src, std::string &dest, std::vector< size_t > &indexMap) const =0
 マルチバイト文字列から 全角文字列に変換する.
virtual void strZenToHan (const char *src, std::string &dest) const =0
 マルチバイト文字列中の全角英数記号について、半角文字に変換する.
virtual int scanJCharPart (const unsigned char *text, const unsigned char *p) const =0
 指定位置の文字種 (1バイト文字/日本語文字の1バイト目/同2バイト目) を判定する.
virtual int countJChar (const unsigned char *text, int begin, int end=0) const =0
 文字列内のポイント間の文字数 (全角は1文字) をカウントする.
virtual int movePoint (const unsigned char *text, int point, int distance) const =0
 文字列内のポイントを n文字分、移動する.
int forwardPoint (const unsigned char *s, int pos) const
 文字列 s の中で、pos 位置から1文字分進める
int backwardPoint (const unsigned char *s, int pos) const
 文字列 s の中で、pos 位置から1文字分戻す
virtual int compareIcase (const unsigned char *s1, const unsigned char *s2, int n=0) const =0
 英字のケースを無視して文字列比較.
virtual const char * search (const char *text, size_t textLen, const char *pattern, size_t pattLen) const
 Boyer-Moore法を併用した文字列検索.
virtual int search (const std::string &text, const std::string &pattern) const
 Boyer-Moore法を併用した文字列検索.
virtual const char * searchIcase (const char *text, size_t textLen, const char *pattern, size_t pattLen) const
 Boyer-Moore法を併用した、ケース無視の文字列検索.
virtual int searchIcase (const std::string &text, const std::string &pattern) const
 Boyer-Moore法を併用した、ケース無視の文字列検索.

Static Public メソッド

static void SetDefaultJCode (int jcode)
 デフォルトの日本語コードの設定
static MBCSUtilIFcreateInstance (int jcode=0)
 インスタンス(オブジェクト)生成


説明

マルチバイト文字/文字列に関するヘルパー関数群を提供するインタフェースクラス.

オブジェクト生成時に引数で与えられる文字コードに従って、SJIS か EUC のどちらかの 文字コードを扱う関数群を提供する。


関数

static void langedge::mbcsutil::MBCSUtilIF::SetDefaultJCode int  jcode  )  [static]
 

デフォルトの日本語コードの設定

static MBCSUtilIF* langedge::mbcsutil::MBCSUtilIF::createInstance int  jcode = 0  )  [static]
 

インスタンス(オブジェクト)生成

virtual int langedge::mbcsutil::MBCSUtilIF::getCharcode  )  const [pure virtual]
 

自オブジェクトの文字コードを得る.

戻り値:
文字コードを表す enum MBCSProperty 値。

bool langedge::mbcsutil::MBCSUtilIF::isEUC  )  const [inline]
 

EUCコード系か.

bool langedge::mbcsutil::MBCSUtilIF::isSJIS  )  const [inline]
 

SJISコード系か.

virtual int langedge::mbcsutil::MBCSUtilIF::isJChar unsigned char  ch  )  const [pure virtual]
 

日本語文字の1バイト目か (文字コード依存).

設定されている文字コードに従って、日本語文字の1バイト目になりうる文字か否かを判定する。

引数:
ch テストする文字
戻り値:
true chは、日本語文字の1バイト目になりうる
false chは、日本語文字の1バイト目になりえない

virtual int langedge::mbcsutil::MBCSUtilIF::isJChar2 unsigned char  ch  )  const [pure virtual]
 

日本語文字の2バイト目か (文字コード依存).

設定されている文字コードに従って、日本語文字の2バイト目になりうる文字か否かを判定する。

引数:
ch テストする文字
戻り値:
true chは、日本語文字の2バイト目になりうる
false chは、日本語文字の2バイト目になりえない

virtual int langedge::mbcsutil::MBCSUtilIF::isWordChar unsigned int  ch  )  const [pure virtual]
 

日本語の1バイト目あるいは英数字か (つまり単語構成文字か).

引数:
ch テストする文字
戻り値:
true chは、日本語の1バイト目あるいは英数字である
false chは、日本語の1バイト目あるいは英数字ではない

virtual unsigned char langedge::mbcsutil::MBCSUtilIF::getHiragana1st  )  const [pure virtual]
 

ひらがな文字の1バイト目を得る.

戻り値:
設定されている文字コードに従った、ひらがな文字の1バイト目

virtual unsigned char langedge::mbcsutil::MBCSUtilIF::getKatakana1st  )  const [pure virtual]
 

カタカナ文字の1バイト目を得る.

戻り値:
設定されている文字コードに従った、カタカナ文字の1バイト目

virtual unsigned short langedge::mbcsutil::MBCSUtilIF::hanToZen unsigned char  ch  )  const [pure virtual]
 

半角文字から全角文字へ変換する.

引数:
ch 半角文字コード

virtual void langedge::mbcsutil::MBCSUtilIF::strHanToZen const char *  src,
std::string &  dest,
bool  onlyKana = false,
bool  remCtrl = false
const [pure virtual]
 

マルチバイト文字列から 全角文字列に変換する.

半角カナだけの変換や制御文字の削除をサポート

引数:
src マルチバイト文字列
dest 結果を格納する文字列
onlyKana true なら半角カナだけを全角に変換する (SJIS のときのみ有効)
remCtrl true なら制御文字を削除する

virtual void langedge::mbcsutil::MBCSUtilIF::strHanToZen const char *  src,
std::string &  dest,
std::vector< size_t > &  indexMap
const [pure virtual]
 

マルチバイト文字列から 全角文字列に変換する.

変換前と変換後の文字列間での対応文字位置のマップ作成をサポート

引数:
src マルチバイト文字列
dest 結果を格納する文字列
indexMap 2バイト文字列から元のマルチバイト文字列への 対応する文字のインデックスのマップ

virtual void langedge::mbcsutil::MBCSUtilIF::strZenToHan const char *  src,
std::string &  dest
const [pure virtual]
 

マルチバイト文字列中の全角英数記号について、半角文字に変換する.

引数:
src 全角文字を含むマルチバイト文字列
dest 結果を格納する文字列

virtual int langedge::mbcsutil::MBCSUtilIF::scanJCharPart const unsigned char *  text,
const unsigned char *  p
const [pure virtual]
 

指定位置の文字種 (1バイト文字/日本語文字の1バイト目/同2バイト目) を判定する.

引数:
text 母文字列の先頭 (unsigned char *)
p 文字種を判定したい位置 (unsigned char *)
戻り値:
JCHAR_PART_S 1バイト文字
JCHAR_PART_1 日本語文字の1バイト目
JCHAR_PART_2 日本語文字の2バイト目

virtual int langedge::mbcsutil::MBCSUtilIF::countJChar const unsigned char *  text,
int  begin,
int  end = 0
const [pure virtual]
 

文字列内のポイント間の文字数 (全角は1文字) をカウントする.

引数:
text 母文字列の先頭 (unsigned char *)
begin 開始位置 (先頭からのオフセット)
end 終端位置 (先頭からのオフセット)
戻り値:
begin から end 直前までの文字数 (全角は1文字としてカウント)

virtual int langedge::mbcsutil::MBCSUtilIF::movePoint const unsigned char *  text,
int  point,
int  distance
const [pure virtual]
 

文字列内のポイントを n文字分、移動する.

引数:
text 母文字列 (0 終端) の先頭 (unsigned char *)
point 母文字列内での現在位置 (先頭からのバイトオフセット)
distance 動かす文字数 (default = 1)
  • 正の場合は、前向きに移動
  • 負の場合は、逆向きに移動
戻り値:
移動後の位置 (先頭からのバイトオフセット)
文字列の終端('\0')まで来てもまだ distance 分移動していない場合は、 文字列長が返る。 先頭まで来ても、まだ distance 分移動していない場合は、0 が返る。

int langedge::mbcsutil::MBCSUtilIF::forwardPoint const unsigned char *  s,
int  pos
const [inline]
 

文字列 s の中で、pos 位置から1文字分進める

int langedge::mbcsutil::MBCSUtilIF::backwardPoint const unsigned char *  s,
int  pos
const [inline]
 

文字列 s の中で、pos 位置から1文字分戻す

virtual int langedge::mbcsutil::MBCSUtilIF::compareIcase const unsigned char *  s1,
const unsigned char *  s2,
int  n = 0
const [pure virtual]
 

英字のケースを無視して文字列比較.

半角英字のみがケース無視の対象。全角文字は対象外。
また、SJISでの第2バイト目が英字と同じコードだった場合も、ケースは無視されない。

引数:
s1 比較対象文字列
s2 比較文字列
n 比較するバイト数 (0 なら、末尾まで一致)
戻り値:
- 負 … s1 < s2
  • 0 … s1 == s2
  • 正 … s1 > s2

virtual const char* langedge::mbcsutil::MBCSUtilIF::search const char *  text,
size_t  textLen,
const char *  pattern,
size_t  pattLen
const [virtual]
 

Boyer-Moore法を併用した文字列検索.

検索対象テキストの中から、照合文字列を見つける。 照合文字列の長さに応じて、力まかせ法とBoyer-Moore法を切り替えて適用する。

引数:
text 検索対象テキスト
textLen 検索対象テキストの長さ (0 なら 末尾の nul まで)
pattern 照合文字列
pattLen 照合文字列の長さ (0 なら 末尾の nul まで)
戻り値:
見つかった位置を示すポインタ
見つからなった場合は、NULL を返す

virtual int langedge::mbcsutil::MBCSUtilIF::search const std::string &  text,
const std::string &  pattern
const [virtual]
 

Boyer-Moore法を併用した文字列検索.

引数:
text 検索対象テキスト
pattern 照合文字列
戻り値:
見つかった位置(検索対象テキストの先頭からのバイト位置)を返す
見つからなった場合は、-1 を返す

virtual const char* langedge::mbcsutil::MBCSUtilIF::searchIcase const char *  text,
size_t  textLen,
const char *  pattern,
size_t  pattLen
const [virtual]
 

Boyer-Moore法を併用した、ケース無視の文字列検索.

英字のケースを無視することを除き、search() に同じ。

virtual int langedge::mbcsutil::MBCSUtilIF::searchIcase const std::string &  text,
const std::string &  pattern
const [virtual]
 

Boyer-Moore法を併用した、ケース無視の文字列検索.

英字のケースを無視することを除き、search() に同じ。


このクラスの説明は次のファイルから生成されました:
LangEdge ライブラリに対してFri May 6 22:43:04 2005に生成されました。  doxygen 1.4.2