原文:http://www.cplusplus.com/reference/clibrary/cctype/iscntrl/
int iscntrl ( int c );
检查一个字符是否是控制字符
检查字符c是否是一个控制字符
对于标准的ASCII字符表来说,控制字符是指那些ASCII码在0x00 (NUL) 和 0x1f (US)之间的字符,加上0x7f (DEL)。另外一些特定平台的某些编译器可能会把扩展字符(ASCII码0x7f以后)定义为新增加的控制字符。
iscntrl和isprint是相反作用的函数。所有isprint返回true的字符,经过iscntrl判断都返回false,不是控制字符。
想要得到不同的ctype函数在处理每个标准ANSII字符返回值的详细图表,请阅读参考<cctype>头文件。
在C++语言中,一个特定于语言环境模版版本的iscntrl函数存在于头文件<locale>。
参数
c
待检查字符,被转换成一个整数或者EOF结束符。
返回值
如果事实上c是一个控制字符的话,返回值为非0(例如:true)。否则,返回值为0 (例如:false)。
实例
/* iscntrl example */ #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; }
这份代码打印通过while循环逐个打印字符,直到碰到一个控制字符,跳出循环,停止打印。这种情况下,只有the first line 会被打印,因为这一行以控制字符'\n'(ASCII 码0x0a)结尾。
请参阅
isgraph 检测字符是否为可显示字符(函数)
ispunct 检测字符是否为标点符号(函数)