C tolower() 函数

C tolower() 语法

tolower() 是 C 语言 <ctype.h> 标准库的一个函数,用于将给定的字符转换为小写字母。

语法:

tolower(c)

说明:

tolower()函数接收单个参数。

  • c(int):是一个字符。虽然是 int 类型,但它的值必须能够表示为一个 unsigned char,或者等于 EOF。

tolower() 函数会返回一个 int 类型的值,表示转换后的字符。

  • 如果参数 c 是一个大写字母('A' 到 'Z'),则返回它对应的小写字母。
  • 如果参数 c 不是小写字母(比如已经是大写字母、数字或符号),则原样返回。

提示: tolower 指的是 “to lower(转换为小写)”。

C tolower() 摘要

使用频率
修改字符串
官方文档 查看
相关函数 toupper()isupper()islower()

C tolower() 示例

接下来,我们通过几个简单的例子来讲解一下 C tolower() 函数是如何使用的。

示例1:tolower() 转换大写字母

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

int main(void)
{
    char ch = 'H';

    char result = tolower(ch);
    printf("%c\n", result);

    return 0;
}

运行结果如下。

h

分析:

从结果可以看出,tolower('H')最终将大写字母 'H' 转换为了小写字母 'h'。

示例2:tolower() 处理小写字母和非字母字符

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

int main(void)
{
    char ch1 = 'a';
    char ch2 = '8';
    char ch3 = '#';
    char ch4 = ' ';    // 空格

    printf("%c\n", tolower(ch1));
    printf("%c\n", tolower(ch2));
    printf("%c\n", tolower(ch3));
    printf("%c\n", tolower(ch4));

    return 0;
}

运行结果如下。

a
8
$
' '(空格)

分析:

tolower() 只会对大写字母进行转换。如果输入字符是小写字母、数字、标点符号或其他非字母字符,则它会返回原字符。

示例3:tolower() 将字符串转换为小写

#include <stdio.h>
#include <ctype.h>     // 包含 tolower() 函数
#include <string.h>    // 包含 strlen() 函数

int main(void)
{
    char str[] = "HELLO, Lvye 666!";

    // 遍历字符串并将每个字符转换为小
    for (int i = 0; str[i] != '\0'; i++) 
    {
        str[i] = tolower((unsigned char)str[i]);    // 将转换结果重新赋值给原位置
    }
    printf("%s\n", str);

    return 0;
}

运行结果如下。

hello, lvye 666!

分析:

在这个例子中,我们使用 for 循环 来遍历字符串的每个字符,并将 tolower() 的结果赋值回原位置。这样我们就可以将整个字符串中的大写字母转换为小写,而其他字符保持不变。

示例4:tolower() 处理 EOF

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

int main(void)
{
    int result;

    // 处理 EOF
    result = tolower(EOF);
    printf("%d\n", result);

    return 0;
}

运行结果如下。

-1

分析:

tolower() 的参数可以是 EOF。一般情况下,EOF 的值被定义为 -1。

提示: EOF 不是键盘上的一个字符,也不是文件中的一个字符,而是一个特殊的整数值(宏定义)。它在 C 语言中用于表示文件达到了末尾。

深入了解 tolower()

对于 tolower() 函数来说,它会受到当前区域设置 (locale) 的影响。不过在默认的 "C" 区域设置下,它只会对 'A' ~ 'Z' 这 26 个大写字母转换为小写字母。而在其他区域设置下,它可能会根据该区域设置的字符转换规则来处理更多的字符。

需要注意的是,tolower() 不会修改原始字符,而是返回转换后的字符值。因此,我们需要将返回值赋给一个变量才能保存转换结果。例如:

char ch = 'A'; 
char result = tolower(ch);    // 必须用一个变量来接收转换结果

虽然 tolower() 输入的参数类型写的是 int,但我们必须传入一个字符(比如 'a'、'B' 等),或者输入特殊的 EOF 值(常用于文件结束判断)。如果传入一个负数(除了 EOF),则可能会导致未定义行为。

上一篇: toupper()

下一篇: isalpha()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号