Oracle Solaris でのアプリケーションの国際化とローカライズ

印刷ビューの終了

更新: 2014 年 7 月
 
 

ワイド文字分類関数

次の関数はワイド文字の分類に使用され、TRUE の場合はゼロ以外の値を返し、FALSE の場合は 0 を返します。これらの関数は、現在のロケールの LC_CTYPE カテゴリで定義されている、alphalower、または jkana などの指定された文字クラスに対して、指定されたワイド文字をチェックします。つまりこれらの関数は、ロケールに依存します。

iswalpha()

英字のワイド文字をテストします

iswalnum()

英数字のワイド文字をテストします

iswascii()

ワイド文字が 7 ビットの US-ASCII 文字を表すかどうかをテストします

iswblank()

空白のワイド文字をテストします

iswcntrl()

制御ワイド文字をテストします

iswdigit()

10 進数のワイド文字をテストします

iswgraph()

表示可能なワイド文字をテストします

iswlower()

小文字のワイド文字をテストします

iswprint()

出力可能なワイド文字をテストします

iswpunct()

句読点ワイド文字をテストします

iswspace()

ホワイトスペースのワイド文字をテストします

iswupper()

大文字のワイド文字をテストします

iswxdigit()

16 進数のワイド文字をテストします

isenglish()

英語の文字を表すワイド文字をテストします (US-ASCII 文字を除く)

isideogram()

表意文字を表すワイド文字をテストします (US-ASCII 文字を除く)

isnumber()

数字 (ディジット) を表すワイド文字をテストします (US-ASCII 文字を除く)

isphonogram()

音声文字を表すワイド文字をテストします (US-ASCII 文字を除く)

isspecial()

特殊文字を表すワイド文字をテストします (US-ASCII 文字を除く)

次の文字クラス名は、すべてのロケールで定義されています。

  • alnum

  • alpha

  • blank

  • cntrl

  • digit

  • graph

  • lower

  • print

  • punct

  • space

  • upper

  • xdigit

isenglish()isideogram()isnumber()isphonogram()isspecial() は、従来の Oracle Solaris 固有のワイド文字分類関数です。これらの関数の文字クラスは、ko_KR.EUCzh_CN.EUCzh_CN.GBKzh_CN.GB18030zh_HK.BIG5HKzh_TW.BIG5zh_TW.EUC のアジア語ロケールとこれらのバリアントのみで定義されています。Unicode ロケールを含むその他のロケールで使用した場合、戻り値は常に false になります。

次の関数を使用すると、汎用的な方法で特定の文字クラスを問い合わせることができます。

wctype()

文字クラスを定義します

iswctype()

指定されたクラスの文字をテストします

使用例 2-11  ワイド文字の文字クラスの問い合わせ

次の例では、iswctype() および wctype() 関数の呼び出しを使用して、指定された Unicode 文字が jhira 文字クラスに属しているかどうかチェックします。jhira 文字クラスは日本語ひらがな文字でできています。

  wint_t  wc;
  int     ret;

  setlocale(LC_ALL, "ja_JP.UTF-8");

  /* "\xe3\x81\xba" is UTF-8 for HIRAGANA LETTER PE */
  ret = mbtowc(&wc, "\xe3\x81\xba", 3);
  if (ret == (size_t)-1) {
          /* Invalid character sequence. */
          :
  }

  if (iswctype(wc, wctype("jhira"))) {
          wprintf(L"'%c' is a hiragana character.\n", wc);
  }

この例では次の出力が作成されます。

ぺ is a hiragana character.