📜  在C语言中区分可打印和控制字符(1)

📅  最后修改于: 2023-12-03 15:23:22.975000             🧑  作者: Mango

在C语言中区分可打印和控制字符

在C语言中,字符类型变量char能够存储ASCII码表中的所有字符,包括可打印字符和控制字符。可打印字符是指键盘上能够通过打印或显示在屏幕上的字符,例如字母、数字、标点符号等;而控制字符则是不可显示的字符,它们用来控制显示器的光标移动、清屏等操作。

为了区分可打印字符和控制字符,C语言提供了一系列的标准库函数,可以让我们对字符进行分类和处理。

判断可打印字符

判断字符是否为可打印字符,可以使用isprint函数。它的原型如下所示:

#include <ctype.h>

int isprint(int ch);

isprint函数接受一个整型参数ch,返回值为非零值表示ch代表一个可打印字符,返回值为0则表示ch代表一个控制字符或不可打印字符。例如:

char ch1 = 'A';
char ch2 = '\n';

if (isprint(ch1)) {
    printf("%c是可打印字符\n", ch1);
} else {
    printf("%c是控制字符\n", ch1);
}

if (isprint(ch2)) {
    printf("%c是可打印字符\n", ch2);
} else {
    printf("%c是控制字符\n", ch2);
}

运行结果为:

A是可打印字符
\n是控制字符
判断控制字符

判断字符是否为控制字符,可以使用iscntrl函数。它的原型如下所示:

#include <ctype.h>

int iscntrl(int ch);

iscntrl函数接受一个整型参数ch,返回值为非零值表示ch代表一个控制字符,返回值为0则表示ch代表一个可打印字符。例如:

char ch1 = 'A';
char ch2 = '\n';

if (iscntrl(ch1)) {
    printf("%c是控制字符\n", ch1);
} else {
    printf("%c是可打印字符\n", ch1);
}

if (iscntrl(ch2)) {
    printf("%c是控制字符\n", ch2);
} else {
    printf("%c是可打印字符\n", ch2);
}

运行结果为:

A是可打印字符
\n是控制字符
其他常用字符处理函数

除了判断可打印字符和控制字符的函数外,C语言还提供了一系列其他的字符处理函数,如下表所示:

| 函数名 | 返回值 | 功能 | | -------- | ------ | ------------------------------------------------------------ | | isalpha | 非零 | 如果参数ch是一个字母,则返回一个非零值(英文字母为26个字母,包括大写字母和小写字母) | | isdigit | 非零 | 如果参数ch是一个数字,则返回一个非零值(10个数字0~9) | | isalnum | 非零 | 如果参数ch是一个字母或数字,则返回一个非零值 | | isspace | 非零 | 如果参数ch是一个空格、制表符('\t')、换行符('\n')、回车符('\r')、垂直制表符('\v')或换页符('\f')则返回非零值 | | isxdigit | 非零 | 如果参数ch是一个十六进制数字,则返回一个非零值(0~9,a~f,A~F) |

这些函数使用方法和上述isprint、iscntrl函数基本相同,不再赘述。

总结

在C语言中,区分可打印字符和控制字符是很有必要的,同时也是很容易完成的一个功能,你只需要善用标准库函数即可。