towctrans

指定した写像を用いてワイド文字 (wide character) を変換します.

#include <wctype.h>
wint_t towctrans(
    wint_t wc,
    wctrans_t desc
);

towctrans 関数は desc で指定する写像を使ってワイド文字 wc を写像します.

その時点の LC_CTYPE カテゴリの設定は,desc の値を返した wctrans 関数の呼び出しと同じである必要があります.

以下の 2 つの式はそれぞれ towlower 関数と towupper 関数の動作と同じになります.

/* towlowerと同じ動作 */
towctrans(wc, wctrans("tolower"))

/* towupperと同じ動作 */
towctrans(wc, wctrans("toupper"))

戻り値

  • desc が指定する写像を使って wc を写像した値

C言語サンプルプログラム

towctrans 関数を使用して入力された文字を大文字に変換するサンプルプログラムを以下に示します.

/* header files */
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <wctype.h>

/* main */
int main(void) {
    wint_t wc = getwchar();
    wctype_t desc = wctrans("tolower");

    /* 文字を変換 */
    wc = towctrans(wc, desc);
    printf("小文字 ==> %c\n", wc);

    return EXIT_SUCCESS;
}

実行例

サンプルプログラムの実行結果は以下のようになります.

(Aを入力)
小文字 ==> a

(zを入力)
小文字 ==> z

(9を入力)
小文字 ==> 9

(~を入力)
小文字 ==> ~

Cプログラマの必読書

たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.

C実践プログラミング 第3版

C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.


C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.