您当前的位置:首页 > 计算机 > 编程开发 > C语言

C语言iscntrl()函数:判断字符是否为ASCII码的控制字符

时间:12-30来源:作者:点击数:

#include <ctype.h>

iscntrl() 用来判断字符是否为ASCII码的控制字符,其原型为:
    int iscntrl(int c);

【参数】c 为需要判断的字符。

【返回值】若参数c 为ASCII 控制码,则返回非 0 值,否则返回 0。

控制字符的ASCII码值 0x00 ~ 0x1F,再加上 0x7f(DEL),控制字符在屏幕上显示时不占位(看不见);显示时占位(能看见)的字符叫打印字符,可以用 isprint() 来检测。

注意,iscntrl() 为宏定义,非真正函数。

【实例】输出一个字符串,遇到控制字符就结束。

#include <stdio.h>
#include <ctype.h>
int main ()
{
    int i=0;
    char str[]="first line \n second line \n";
    while (!iscntrl(str[i]))
    {
        putchar (str[i]);
        i++;
    }
    return 0;
}

输出结果:first line 

因为控制字符不可见,我们可以使用ASCII码值初始化一个数组,并判断是否是控制字符。代码如下:

#include<ctype.h>
int main(void)
{
    char ch[] = {0x00,0x01,0x1f,0x7f};
    int i = 0;
    for(i = 0;i<4;i++)
    {
        if(iscntrl(ch[i]))
        {
            printf("%x 是控制字符\n",ch[i]);
        }
        else
        {
            printf("%x 不是控制字符\n",ch[i]);
        }
    }
   
    return 0;
}

运行结果:

0 是控制字符
1 是控制字符
1f 贼制字符
7f 是控制字符
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门