名 前
toupper, tolower, toupper_l, tolower_l − 小 文 字 を 大 文 字 に す る 。 ま た は 大 文 字 を 小 文 字 に す る 。
書 式
#include <ctype.h>
int
toupper(int c);
int tolower(int c);
int
toupper_l(int c, locale_t
locale);
int tolower_l(int c, locale_t
locale);
glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):
toupper_l(), tolower_l():
glibc 2.10 以 降 :
_XOPEN_SOURCE >= 700
glibc 2.10 よ り 前 :
_GNU_SOURCE
説 明
こ れ ら の 関 数 は 、 小 文 字 を 大 文 字 に 、 も し く は 大 文 字 を 小 文 字 に 変 換 す る 。
c が 小 文 字 の 場 合 、 現 在 の ロ ケ ー ル で 大 文 字 表 現 が 存 在 す る 場 合 、 toupper() は 対 応 す る 大 文 字 を 返 す 。 大 文 字 表 現 が 存 在 し な い 場 合 、 c を 返 す 。 toupper_l() 関 数 は 同 じ 動 作 を す る が 、 ロ ケ ー ル ハ ン ド ル locale が 参 照 す る ロ ケ ー ル を 使 っ て 変 換 を 行 う 。
c が 大 文 字 の 場 合 、 現 在 の ロ ケ ー ル で 小 文 字 表 現 が 存 在 す る 場 合 、 tolower() は 対 応 す る 小 文 字 を 返 す 。 小 文 字 表 現 が 存 在 し な い 場 合 、 c を 返 す 。 tolower_l() 関 数 は 同 じ 動 作 を す る が 、 ロ ケ ー ル ハ ン ド ル locale が 参 照 す る ロ ケ ー ル を 使 っ て 変 換 を 行 う 。 も し c が unsigned char 値 で も EOF で も な い 場 合 、 こ れ ら の 関 数 の 動 作 は 未 定 義 で あ る 。
locale が 特 別 な ロ ケ ー ル オ ブ ジ ェ ク ト LC_GLOBAL_LOCALE の 場 合 (duplocale(3) 参 照 )、 ま た は locale が 有 効 な ロ ケ ー ル オ ブ ジ ェ ク ト ハ ン ド ル で な い 場 合 、 toupper_l() と tolower_l() の 動 作 は 未 定 義 で あ る 。
返 り 値
変 換 が で き れ ば 変 換 後 の 文 字 を 返 す 。 で き な け れ ば 変 換 前 の c を 返 す 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 toupper() と tolower() は 、 例 外 付 き の ス レ ッ ド セ ー フ で あ る 。 実 行 中 に setlocale(3) を 呼 び 出 し て ロ ケ ー ル を 変 更 し な い 限 り 、 マ ル チ ス レ ッ ド ア プ リ ケ ー シ ョ ン で 安 全 に 使 用 す る こ と が で き る 。
準 拠
toupper(), tolower(): C89, C99, 4.3BSD, POSIX.1−2001, POSIX.1−2008.
toupper_l(), tolower_l(): POSIX.1−2008.
注 意
な に が 大 文 字 で な に が 小 文 字 な の か と い う こ と の 詳 細 は 、 ロ ケ ー ル に 依 存 し て い る 。 た と え ば 、 デ フ ォ ル ト の "C" ロ ケ ー ル で は ウ ム ラ ウ ト を 認 識 し な い た め 、 そ れ ら の 文 字 は 変 換 で き な い 。 い く つ か の 非 英 語 ロ ケ ー ル で は 、 対 応 す る 大 文 字 を 持 た な い 小 文 字 が 存 在 す る 。 ド イ ツ 語 の エ ス ツ ェ ッ ト が 一 つ の 例 で あ る 。
関 連 項 目
isalpha(3), newlocale(3), setlocale(3), uselocale(3), towlower(3), towupper(3), locale(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。