首页 > 编程笔记

C语言iscntrl():判断一个字符是否为控制字符

iscntrl() 是 C语言的一个标准库函数,定义在<ctype.h>头文件中。

iscntrl() 函数用于检测给定的字符是否为控制字符。所谓控制字符,指的是 ASCII 码值位于 0x00(NOL)~0x1f(VS) 之间以及等于 0x7f 的字符。

iscntrl() 函数的原型如下:

int iscntrl(int c);

参数

c 表示要检查的字符,虽然参数是 int 类型,但通常传入的是 char 类型的字符。

返回值

如果传入的字符是控制字符,则返回非零值;如果传入的字符不是控制字符,则返回零。

【实例】用 iscntrl() 函数检查一个字符串中的每个字符是否是控制字符,请看下面的 C语言代码。
#include <stdio.h>
#include <ctype.h>

int main() {
    char str[] = { 'A', '\t', '\n', 27, '\0' }; // 包括制表符、换行符和ESC字符

    for(int i = 0; str[i] != '\0'; i++) {
        if(iscntrl(str[i])) {
            printf("Character at index %d is a control character.\n", i);
        } else {
            printf("Character at index %d is NOT a control character.\n", i);
        }
    }

    return 0;
}
输出结果为:

Character at index 0 is NOT a control character.
Character at index 1 is a control character.
Character at index 2 is a control character.
Character at index 3 is a control character.

示例中使用 iscntrl() 函数检查每个字符是否是控制字符。在这个特定的字符串中,包括制表符(\t)、换行符(\n)和 27(ESC 字符),都被识别为控制字符。

推荐阅读