首页 > 代码库 > <ctype.h> C语言标准库

<ctype.h> C语言标准库

ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符、控制字符等等


ctype.h的C标准库的头文件中提供的声明几个有用的函数测试和字符映射。 yiibai.com

所有的功能都接受int作为参数,其值必须是EOF或为unsigned char表示。

所有函数返回的参数c非零(true),如果满足条件。否则返回0。

库函数

以下是在头文件ctype.h中定义的函数:

S.N.函数及说明
1int isalnum(int c) yiibai.com 
该函数检查传递的字符是否是字母数字。
2int isalpha(int c)
该函数是否传递的字符是字母。
3int iscntrl(int c) 
该函数是否传递的字符是控制字符。
4int isdigit(int c)
该函数是否传递的字符是十进制数字。
5int isgraph(int c) 
该函数是否传递的字符的图形表示,使用的语言环境。
6int islower(int c)
该函数检查传递的字符是否是小写字母。
7int isprint(int c) yiibai.com 
该函数检查传递的字符是否是可打印的。
8int ispunct(int c)
该函数检查传递的字符是否是标点符号。
9int isspace(int c) 
该函数检查传递的字符是否是空白。
10int isupper(int c)
该函数检查传递的字符是否是大写字母。
11int isxdigit(int c) 
该函数检查传递的字符是否是十六进制数字。

该库还包含两个转换函数,也接受并返回一个“整数”

S.N.函数及说明
1int tolower(int c) 
这个函数转换大写字母为小写。
2int toupper(int c)
这个函数小写字母转换为大写。



 ctype.h里的函数

  1 字符测试函数
  1> 函数原型均为int isxxxx(int)
  2> 参数为int, 任何实参均被提升成整型
  3> 只能正确处理处于[0, 127]之间的值
  2 字符映射函数
  1> 函数原型为int toxxxx(int)
  2> 对参数进行检测, 若符合范围则转换, 否则不变
  int tolower(int); ‘A‘~‘Z‘ ==> ‘a‘~‘z‘
  int toupper(int); ‘a‘~‘z‘ ==> ‘A‘~‘Z‘
  @函数名称: isalpha
  函数原型: int isalpha(int ch);
  函数功能: 检查ch是否是字母.
  函数返回: 是字母返回非0 ,否则返回 0.
  参数说明:
  所属文件 <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘*‘;
  char ch2=‘a‘;
  if(isalnum(ch1)!=0)
  printf("%c is the ASCII number or alphebet\n",ch1);
  else
  printf("%c is not the ASCII number nor alphebet\n",ch1);
  if(isalnum(ch2)!=0)
  printf("%c is the ASCII number or alphebet\n",ch2);
  else
  printf("%c is not the ASCII number nor alphebet\n",ch2);
  return 0;
  }
  @函数名称: iscntrl
  函数原型: int iscntrl(int ch);
  函数功能: 检查ch是否控制字符(其ASCII码在0和0x1F之间,数值为 0-31).
  函数返回: 是返回 1,否则返回 0.
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  char chars[]={‘A‘,0x09,‘Z‘};
  #define SIZE sizeof(chars)/sizeof(char)
  int main()
  {
  int i;
  for(i=0;i<SIZE;i++){
  printf("Char %c is %sa Control character\n",
  chars[i],(iscntrl(chars[i]))?"":"not");
  }
  return 0;
  }
  @函数名称: isdigit
  函数原型: int isdigit(int ch);
  函数功能: 检查ch是否是数字(0-9)
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘1‘;
  char ch2=‘a‘;
  if(isdigit(ch1)!=0)
  printf("%c is the ASCII number\n",ch1);
  else
  printf("%c is not the ASCII number\n",ch1);
  if(isdigit(ch2)!=0)
  printf("%c is the ASCII number\n",ch2);
  else
  printf("%c is not the ASCII number\n",ch2);
  return 0;
  }
  @函数名称: isgraph
  函数原型: int isgraph(int ch);
  函数功能: 检查ch是否可显示字符(其ASCII码在ox21到ox7E之间),不包括空格
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘ ‘;
  char ch2=‘a‘;
  if(isgraph(ch1)!=0)
  printf("%c is the ASCII printable character\n",ch1);
  else
  printf("%c is not the ASCII printable character\n",ch1);
  if(isgraph(ch2)!=0)
  printf("%c is the ASCII printable character\n",ch2);
  else
  printf("%c is not the ASCII printable character\n",ch2);
  return 0;
  }
  @函数名称: islower
  函数原型: int islower(int ch);
  函数功能: 检查ch是否小写字母(a-z)
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  char chars[]={‘A‘,‘a‘,‘z‘,‘Z‘};
  #define SIZE sizeof(chars)/sizeof(char)
  int main()
  {
  int i;
  for(i=0;i<SIZE;i++){
  printf("Char %c is %sa lowercase character\n",chars[i],(islower(chars[i]))?"":"not");
  }
  return 0;
  }
  @函数名称: tolower
  函数原型: int tolower(int ch);
  函数功能: 将ch字符转换为小写字母
  函数返回: 返回ch所代表的字符的小写字母
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <ctype.h>
  int main()
  {
  char x=‘a‘, y=‘b‘,z=‘A‘,w=‘*‘;
  printf("Character %c to lower is %c\n",x,tolower(x));
  printf("Character %c to lower is %c\n",y,tolower(y));
  printf("Character %c to lower is %c\n",z,tolower(z));
  printf("Character %c to lower is %c\n",w,tolower(w));
  return 0;
  }
  @函数名称: toupper
  函数原型: int toupper(int ch);
  函数功能: 将ch字符转换成大写字母
  函数返回: 与ch相应的大写字母
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <ctype.h>
  int main()
  {
  char x=‘a‘, y=‘b‘,z=‘A‘,w=‘*‘;
  printf("Character %c to upper is %c\n",x,toupper(x));
  printf("Character %c to upper is %c\n",y,toupper(y));
  printf("Character %c to upper is %c\n",z,toupper(z));
  printf("Character %c to upper is %c\n",w,toupper(w));
  return 0;
  }
  @函数名称: isalnum
  函数原型: int isalnum(int ch);
  函数功能: 检查ch是否是字母或数字
  函数返回: 是字母或数字返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1 =‘*‘;
  char ch2 =‘a‘;
  if(isalnum(ch1)!=0)
  printf("%c is the ASCII number or alphebet\n",ch1);
  else
  printf("%c is not the ASCII number nor alphebet\n",ch1);
  if(isalnum(ch2)!=0)
  printf("%c is the ASCII number or alphebet\n",ch2);
  else
  printf("%c is not the ASCII number nor alphebet\n",ch2);
  return 0;
  }
  @函数名称: isprint
  函数原型: int isprint(int ch);
  函数功能: 检查ch是否是可打印字符(包括空格),其ASCII码在ox20到ox7E之间
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘\n‘;
  char ch2=‘a‘;
  if(isprint(ch1)!=0)
  printf("%c is the ASCII printable charcater\n",ch1);
  else
  printf("%c is not the ASCII printable charcater\n",ch1);
  if(isprint(ch2)!=0)
  printf("%c is the ASCII printable charcater\n",ch2);
  else
  printf("%c is not the ASCII printable charcater\n",ch2);
  return 0;
  }
  @函数名称: ispunct
  函数原型: int ispunct(int ch);
  函数功能: 检查ch是否是标点字符(不包括空格),即除字母,数字和空格以外的所有可打印字符
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include<ctype.h>
  int main()
  {
  char ch1=‘,‘;
  char ch2=‘a‘;
  if(ispunct(ch1)!=0)
  printf("%c is the ASCII punct\n",ch1);
  else
  printf("%c is not the ASCII punct\n",ch1);
  if(ispunct(ch2)!=0)
  printf("%c is the ASCII punct\n",ch2);
  else
  printf("%c is not the ASCII punct\n",ch2);
  return 0;
  }
  @函数名称: isspace
  函数原型: int isspace(int ch);
  函数功能: 检查ch是否是空格符和跳格符(控制字符)或换行符
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘ ‘;
  char ch2=‘a‘;
  if(isspace(ch1)!=0)
  printf("%c is the space charcater\n",ch1);
  else
  printf("%c is not the space charcater\n",ch1);
  if(isspace(ch2)!=0)
  printf("%c is the space charcater\n",ch2);
  else
  printf("%c is not the space charcater\n",ch2);
  return 0;
  }
  @函数名称: isupper
  函数原型: int isupper(int ch);
  函数功能: 检查ch是否是大写字母(A-Z)
  函数返回: 是返回1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  char chars[]={‘A‘,‘a‘,‘z‘,‘Z‘};
  #define SIZE sizeof(chars)/sizeof(char)
  int main()
  {
  int i;
  for(i=0;i<SIZE;i++){
  printf("Char %c is %san uppercase character\n",
  chars[i],(isupper(chars[i]))?"":"not");
  }
  return 0;
  }
  @函数名称: isxdigit
  函数原型: int isxdigit(int ch);
  函数功能: 检查ch是否是一个16进制数学字符(即0-9,或A-F,或a-f)
  函数返回: 是返回 1,否则返回0
  参数说明:
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  int main()
  {
  char ch1=‘1‘;
  char ch2=‘a‘;
  if(isxdigit(ch1)!=0)
  printf("%c is the ASCII hexadecimal number\n",ch1);
  else
  printf("%c is not the ASCII hexadecimal number\n",ch1);
  if(isxdigit(ch2)!=0)
  printf("%c is the ASCII hexadecimal number\n",ch2);
  else
  printf("%c is not the ASCII hexadecimal number\n",ch2);
  return 0;
  }
  @函数名称: isascii
  函数原型: int isascii(int ch)
  函数功能: 测试参数是否是ASCII码0-127
  函数返回: 非零-是,0-不是
  参数说明: ch-被测参数
  所属文件: <ctype.h>
  #include <stdio.h>
  #include <ctype.h>
  char chars[]={‘A‘,0x80,‘Z‘};
  #define SIZE sizeof(chars)/sizeof(char)
  int main()
  {
  int i;
  for(i=0;i<SIZE;i++)
  {
  printf("Char %c is %san ASCII character\n",
  chars[i],(isascii(chars[i]))?"":"not");
  }
  return 0;
  }

<ctype.h> C语言标准库