# tolower

< c‎ | string‎ | byte

定义于头文件 `<ctype.h>` |  |
int tolower( int ch ); |  |

按照当前安装的 C 本地环境所定义的规则，转换给定字符为小写。

默认 `"C"` 本地环境中，以分别小写字母 `ABCDEFGHIJKLMNOPQRSTUVWXYZ` 替换大写字母 `abcdefghijklmnopqrstuvwxyz` 。

### 参数

ch | - | 要转换的字符。若 `ch` 的值不能表示为 unsigned char 且不等于 EOF ，则行为未定义。

### 返回值

`ch` 的小写版本，或若当前 C 本地环境中无小写版本，则返回不修改的 `ch` 。

### 示例

    #include <stdio.h>
    #include <ctype.h>
    #include <locale.h>
    #include <limits.h>

    int main(void)
    {
        /* 在默认本地环境： */
        unsigned char l;
        for (unsigned char u=0; u<UCHAR_MAX; u++) {
            l = tolower(u);
            if (l!=u) printf("%c%c ", u,l);
        }
        printf("\n\n");

        unsigned char c = '\xb4'; // ISO-8859-15 的字符 Ž
                                  // 但在 ISO-8859-1为 ´ （锐音符）
        unsigned char c2 = c;   // 为打印
        setlocale(LC_ALL, "en_US.iso88591");
        printf("in iso8859-1, tolower('0x%x') gives 0x%x\n", c2, tolower(c));
        setlocale(LC_ALL, "en_US.iso885915");
        printf("in iso8859-15, tolower('0x%x') gives 0x%x\n", c2, 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

### 引用

- C11 标准（ISO/IEC 9899:2011）：

  - 7.4.2.1 The tolower function (p: 203)

- C99 标准（ISO/IEC 9899:1999）：

  - 7.4.2.1 The tolower function (p: 184)

- C89/C90 标准（ISO/IEC 9899:1990）：

  - 4.3.2.1 The tolower function

### 参阅

toupper | 将字符转换成大写 (函数)
towlower (C95) | 将宽字符转换为小写 (函数)