日本語専用ライブラリでは、単一バイト変換関数 (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(3I) 関数で行単位にファイルを読み込んだ後に、tojhira(3X) 関数を用いてカタカナ文字をひらがな文字に変換しています。
sun% cat example2.ccat 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_file2cat input_file2
コレハ、カタカナヲひらがなニ変換スル
サンプルプログラムデス。
「ヴヵヶ」ハ、変換サレマセン。
クリカエシキゴウ - ヾヽ
sun% cc -o example2 example2.c -lwcc -o example2 example2.c -lw
sun% ./example2 < input_file2
これは、かたかなをひらがなに変換する
さんぷるぷろぐらむです。
「ヴヵヶ」は、変換されません。
くりかえしきごう - ゞゝ
sun%