Namespaces
Variants

tolower

From cppreference.net
< c ‎ | string ‎ | byte
ヘッダーで定義 <ctype.h>
int tolower ( int ch ) ;

指定された文字を、現在インストールされているCロケールで定義された文字変換規則に従って小文字に変換します。

デフォルトの"C"ロケールでは、以下の大文字 ABCDEFGHIJKLMNOPQRSTUVWXYZ はそれぞれ対応する小文字 abcdefghijklmnopqrstuvwxyz に置き換えられます。

目次

パラメータ

ch - 変換される文字。 ch の値が unsigned char として表現不可能で、かつ EOF と等しくない場合、動作は未定義です。

戻り値

小文字バージョンの ch または、現在のCロケールに小文字バージョンが登録されていない場合は変更されていない ch を返します。

#include <ctype.h>
#include <limits.h>
#include <locale.h>
#include <stdio.h>
int main(void)
{
    // デフォルトロケールで
    for (unsigned char u = 0; u < UCHAR_MAX; u++)
    {
        unsigned char l = tolower(u);
        if (l != u)
            printf("%c%c ", u, l);
    }
    printf("\n\n");
    unsigned char c = '\xb4'; // ISO-8859-15では文字Ž
                              // ISO-8859-1では´(鋭アクセント)
    setlocale(LC_ALL, "en_US.iso88591");
    printf("in iso8859-1, tolower('0x%x') gives 0x%x\n", c, tolower(c));
    setlocale(LC_ALL, "en_US.iso885915");
    printf("in iso8859-15, tolower('0x%x') gives 0x%x\n", c, tolower(c));
}

出力例:

Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz
in iso8859-1, tolower('0xb4') gives 0xb4
in iso8859-15, tolower('0xb4') gives 0xb8

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.4.2.1 tolower関数 (p: TBD)
  • C17規格 (ISO/IEC 9899:2018):
  • 7.4.2.1 tolower関数 (p: 147)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.4.2.1 tolower関数 (p: 203)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.4.2.1 tolower関数 (p: 184)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.3.2.1 tolower関数

関連項目

文字を大文字に変換する
(関数)
ワイド文字を小文字に変換する
(関数)