函数
<cctype>

iscntrl

int iscntrl ( int c );
检查字符是否为控制字符
检查 c 是否为控制字符

控制字符是指在显示器上不占有打印位置的字符(这是可打印字符的反义,由 isprint 检查)。

对于标准 ASCII 字符集(由“C”区域设置使用),控制字符是 ASCII 码 0x00 (NUL) 到 0x1f (US) 之间的字符,再加上 0x7f (DEL)。

有关不同ctype函数为标准 ANSII 字符集中的每个字符返回的值,请参阅 <cctype> 头文件的参考。

在 C++ 中,标题 <locale> 中存在此函数的区域设置特定模板版本(iscntrl)。

参数

c
要检查的字符,转型为int类型,或EOF.

返回值

如果 c 确实是空白字符,则返回一个非零值(即true)如果 c 确实是一个控制字符。零(即false)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* 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 循环的控制字符为止。在本例中,只有第一行会被打印,因为该行以'\n'结尾,这是一个控制字符(ASCII 码 0x0a)。

另见