日本語専用ライブラリは、単一バイト変換関数 (toupper、tolower) と同様の変換関数を JIS X 0208、JIS X 0201、 JIS X 0212 に相当する日本語文字専用に提供しています。さらに、ASCII 文字セットと日本語文字間での変換、区点コード変換など、日本語特有の変換を行う関数も提供しています。これらの関数を使用する場合は /usr/include/jctype.h を取り込んでください。
表 A-3 ワイド文字変換用関数
関数 |
機能 |
---|---|
JIS X 0208、JIS X 0212 で定義されるアルファベット小文字を表すワイド文字を、対応する大文字を表すワイド文字に変換する |
|
JIS X 0208、JIS X 0212 で定義されるアルファベット大文字を表すワイド文字を、対応する小文字を表すワイド文字に変換する |
|
JIS X 0208 で定義されるカタカナ文字、カタカナ繰り返し記号を表すワイド文字を、対応するひらがな文字、ひらがな繰り返し記号を表すワイド文字に変換する |
|
JIS X 0208 で定義されるひらがな文字、ひらがな繰り返し記号を表すワイド文字を、対応するカタカナ文字、カタカナ繰り返し記号を表すワイド文字に変換する |
|
ASCII 文字、または JIS X 0201 カタカナ用図形文字で定義される文字を表すワイド文字を、対応する JIS X 0208 で定義される文字を表すワイド文字に変換する |
|
JIS X 0208 で定義される文字を表すワイド文字を、対応する ASCII 文字、または JIS X 0201 カタカナ用図形文字で定義される文字を表すワイド文字に変換する |
|
ワイド文字表現に使用しないすべてのビットをオフにして、 wchar_t 型に変換する |
|
区点番号からワイド文字に変換する |
例 A-2 は、これらのワイド文字変換用関数を使用して、JIS X 0208 のカタカナ文字をひらがな文字に変換するプログラム例です。このプログラム例では、getws(3C) 関数で行単位にファイルを読み込んだ後に、tojhira(3X) 関数を使ってカタカナ文字をひらがな文字に変換しています。
sun% cat example2.c #include <stdio.h> #include <locale.h> #include <jctype.h> main() { wchar_t wbuf[1024]; wchar_t *wptr, c; setlocale(LC_ALL, ""); while (getws(wbuf) != NULL) { wptr = wbuf; while (*wptr) { c = tojhira(*wptr++); putwc(c, stdout); } putchar('¥n'); } } sun% cat input_file2 コレハ、カタカナヲひらがなニ変換スル サンプルプログラムデス。 「ヴヵヶ」ハ、変換サレマセン。 クリカエシキゴウ - ヾヽ sun% cc -o example2 example2.c -lw sun% ./example2 < input_file2 これは、かたかなをひらがなに変換する さんぷるぷろぐらむです。 「ヴヵヶ」は、変換されません。 くりかえしきごう - ゞゝ sun%