ctype.h是C标准函数库中的头文件,定义了一批C语言字符分类函数(C character classification functions),用于測试字符是否属于特定的字符类别。如字母字符、控制字符等等
ctype.h的C标准库的头文件里提供的声明几个实用的函数測试和字符映射。
yiibai.com
全部的功能都接受int作为參数,其值必须是EOF或为unsigned char表示。
全部函数返回的參数c非零(true),假设满足条件。
否则返回0。
库函数
下面是在头文件ctype.h中定义的函数:
S.N. | 函数及说明 |
---|---|
1 |
int isalnum(int c) yiibai.com 该函数检查传递的字符是否是字母数字。 |
2 |
int isalpha(int c) 该函数是否传递的字符是字母。 |
3 |
int iscntrl(int c) 该函数是否传递的字符是控制字符。 |
4 |
int isdigit(int c) 该函数是否传递的字符是十进制数字。 |
5 |
int isgraph(int c) 该函数是否传递的字符的图形表示,使用的语言环境。 |
6 |
int islower(int c) 该函数检查传递的字符是否是小写字母。 |
7 |
int isprint(int c) yiibai.com 该函数检查传递的字符是否是可打印的。 |
8 |
int ispunct(int c) 该函数检查传递的字符是否是标点符号。 |
9 |
int isspace(int c) 该函数检查传递的字符是否是空白。 |
10 |
int isupper(int c) 该函数检查传递的字符是否是大写字母。 |
11 |
int isxdigit(int c) 该函数检查传递的字符是否是十六进制数字。 |
该库还包括两个转换函数。也接受并返回一个“整数”
S.N. | 函数及说明 |
---|---|
1 |
int tolower(int c) 这个函数转换大写字母为小写。 |
2 |
int 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 ",ch1); else printf("%c is not the ASCII number nor alphebet ",ch1); if(isalnum(ch2)!=0) printf("%c is the ASCII number or alphebet ",ch2); else printf("%c is not the ASCII number nor alphebet ",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 ", 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 ",ch1); else printf("%c is not the ASCII number ",ch1); if(isdigit(ch2)!=0) printf("%c is the ASCII number ",ch2); else printf("%c is not the ASCII number ",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 ",ch1); else printf("%c is not the ASCII printable character ",ch1); if(isgraph(ch2)!=0) printf("%c is the ASCII printable character ",ch2); else printf("%c is not the ASCII printable character ",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 ",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 ",x,tolower(x)); printf("Character %c to lower is %c ",y,tolower(y)); printf("Character %c to lower is %c ",z,tolower(z)); printf("Character %c to lower is %c ",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 ",x,toupper(x)); printf("Character %c to upper is %c ",y,toupper(y)); printf("Character %c to upper is %c ",z,toupper(z)); printf("Character %c to upper is %c ",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 ",ch1); else printf("%c is not the ASCII number nor alphebet ",ch1); if(isalnum(ch2)!=0) printf("%c is the ASCII number or alphebet ",ch2); else printf("%c is not the ASCII number nor alphebet ",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=' '; char ch2='a'; if(isprint(ch1)!=0) printf("%c is the ASCII printable charcater ",ch1); else printf("%c is not the ASCII printable charcater ",ch1); if(isprint(ch2)!=0) printf("%c is the ASCII printable charcater ",ch2); else printf("%c is not the ASCII printable charcater ",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 ",ch1); else printf("%c is not the ASCII punct ",ch1); if(ispunct(ch2)!=0) printf("%c is the ASCII punct ",ch2); else printf("%c is not the ASCII punct ",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 ",ch1); else printf("%c is not the space charcater ",ch1); if(isspace(ch2)!=0) printf("%c is the space charcater ",ch2); else printf("%c is not the space charcater ",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 ", 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 ",ch1); else printf("%c is not the ASCII hexadecimal number ",ch1); if(isxdigit(ch2)!=0) printf("%c is the ASCII hexadecimal number ",ch2); else printf("%c is not the ASCII hexadecimal number ",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 ", chars[i],(isascii(chars[i]))?"":"not");
} return 0; }