C语言iscntrl()函数:判断字符是否为ASCII码的控制字符
#include <ctype.h>
iscntrl() 用来判断字符是否为ASCII码的控制字符,其原型为:
int iscntrl(int c);
【参数】c 为需要判断的字符。
【返回值】若参数c 为ASCII 控制码,则返回非 0 值,否则返回 0。
控制字符的ASCII码值 0x00 ~ 0x1F,再加上 0x7f(DEL),控制字符在屏幕上显示时不占位(看不见);显示时占位(能看见)的字符叫打印字符,可以用 isprint() 来检测。
注意,iscntrl() 为宏定义,非真正函数。
【实例】输出一个字符串,遇到控制字符就结束。
first line
因为控制字符不可见,我们可以使用ASCII码值初始化一个数组,并判断是否是控制字符。代码如下:
0 是控制字符
1 是控制字符
1f 贼制字符
7f 是控制字符
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 是控制字符