C islower() 函数

C islower() 语法

islower() 是 C 语言 <ctype.h> 标准库的一个函数,用于判断字符是否为小写字母。

语法:

islower(c)

说明:

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

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

islower() 函数会返回一个 int 类型的值,以表示判断结果。

  • 如果参数 c 是一个在当前区域设置下被归类为小写字母的字符,则返回一个非零值(表示 “真”)。
  • 否则,返回 0(表示 “假”)。

提示:

  • islower 指的是 “is lower”。
  • islower() 用于判断字符是否为小写字母,而 isupper() 用于判断字符是否为大写字母。

C islower() 摘要

使用频率
修改字符串
官方文档 查看

C islower() 示例

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

示例 1:islower() 判断字母

#include <stdio.h>
#include <ctype.h> // 包含 islower 函数

int main(void)
{
    char ch1 = 'L';
    char ch2 = 'y';
    char ch3 = 'E';

    if (islower(ch1)) {
        printf("'%c' 是小写字母。\n", ch1);
    } else {
        printf("'%c' 不是小写字母。\n", ch1);
    }

    if (islower(ch2)) {
        printf("'%c' 是小写字母。\n", ch2);
    } else {
        printf("'%c' 不是小写字母。\n", ch2);
    }

    if (islower(ch3)) {
        printf("'%c' 是小写字母。\n", ch3);
    } else {
        printf("'%c' 不是小写字母。\n", ch3);
    }

    return 0;
}

运行结果如下。

'L' 不是小写字母。
'y' 是小写字母。
'E' 不是小写字母。

分析:

只有当参数是小写字母字符时,islower() 才会返回非零值(表示 “真”)。

示例 2:islower() 判断非字母字符

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

int main(void)
{
    char ch1 = '8';
    char ch2 = '*';
    char ch3 = '+';
    char ch4 = ' ';

    if (islower(ch1)) {
        printf("'%c' 是小写字母。\n", ch1);
    } else {
        printf("'%c' 不是小写字母。\n", ch1);
    }

    if (islower(ch2)) {
        printf("'%c' 是小写字母。\n", ch2);
    } else {
        printf("'%c' 不是小写字母。\n", ch2);
    }

    if (islower(ch3)) {
        printf("'%c' 是小写字母。\n", ch3);
    } else {
        printf("'%c' 不是小写字母。\n", ch3);
    }

    if (islower(ch4)) {
        printf("'%c' 是小写字母。\n", ch4);
    } else {
        printf("'%c' 不是小写字母。\n", ch4);
    }

    return 0;
}

运行结果如下。

'8' 不是小写字母。
'*' 不是小写字母。
'+' 不是小写字母。
' ' 不是小写字母。

分析:

如果参数是大写字母、数字、标点符号和空格等非小写字母字符,那么 islower() 会返回 0(表示 “假”)。

示例 3:islower() 判断字符串中的小写字母

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

int main(void)
{
    char str[] = "HELLO lvye";
    int n = 0;

    for (int i = 0; str[i] != '\0'; i++) {
        if (islower((unsigned char)str[i])) {
            n++;
        }
    }
    printf("小写字母个数:%d", n);

    return 0;
}

运行结果如下。

小写字母个数:4

分析:

在这个例子中,我们使用for循环 来遍历字符串的每一个字符,并且在循环中使用 islower() 来判断当前字符是否为小写字符。如果是小写字符,则 n 加 1。最终得到的 n,就是小写字母的个数。

示例 4:islower() 处理 EOF

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

int main(void) {
    int result;

    result = islower(EOF);
    printf("%d\n", result);

    return 0;
}

运行结果如下。

0

分析:

如果 islower() 的参数是 EOF,那么它会返回 0。

深入了解 islower()

islower() 函数的行为会受到当前区域设置 (locale) 的影响。在默认的 "C" 区域设置下,它只会将 'a' ~ 'z' 识别为小写字母。在其他区域设置下,它可能会根据该区域设置的定义将其他字符(如带重音的小写字母)也视为小写字母。

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

上一篇: isupper()

下一篇: isspace()

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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