C语言再学习 -- ctype.h字符判断函数

时间:2022-01-05 01:40:33

参看:ctype.h 百度百科

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

    ctype.h里的函数概况

字符测试函数 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

函数名称: isalpha函数原型: int isalpha(char ch);函数功能: 检查ch是否是字母.函数返回: 是字母返回非0(在vs2015中为2) ,否则返回 0.参数说明:所属文件 <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>int main(){    char ch1='*';    char ch2='a';    if(isalpha(ch1)!=0)        printf("%c is the ASCII alphabet\n",ch1);    else        printf("%c is not the ASCII alphabet\n",ch1);    if(isalnum(ch2)!=0)        printf("%c is the ASCII alphabet\n",ch2);    else        printf("%c is not the ASCII alphabet\n",ch2);    return0;}

iscntrl

函数名称: iscntrl函数原型: int iscntrl(int ch);函数功能: 检查ch是否控制字符(其ASCII码在0和0x1F之间,数值为 0-31).函数返回: 是返回非0,否则返回 0.参数说明:所属文件: <ctype.h>
1234567891011121314 #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%cis%saControlcharacter\n",        chars[i],(iscntrl(chars[i]))?"":"not");    }    return 0;}

isdigit

函数名称: isdigit函数原型: int isdigit(char ch);函数功能: 检查ch是否是数字(0-9)函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #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);elseprintf("%c is not the ASCII number\n",ch1);if(isdigit(ch2)!=0)printf("%c is the ASCII number\n",ch2);elseprintf("%c is not the ASCII number\n",ch2);return0;}
[1] 

isgraph

函数名称: isgraph函数原型: int isgraph(int ch);函数功能: 检查ch是否可显示字符(其ASCII码在0x21到0x7E之间),不包括空格函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>int main(){charch1='';charch2='a';if(isgraph(ch1)!=0)printf("%cistheASCIIprintablecharacter\n",ch1);elseprintf("%cisnottheASCIIprintablecharacter\n",ch1);if(isgraph(ch2)!=0)printf("%cistheASCIIprintablecharacter\n",ch2);elseprintf("%cisnottheASCIIprintablecharacter\n",ch2);return0;}

islower

函数名称: islower函数原型: int islower(int ch);函数功能: 检查ch是否小写字母(a-z)函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
123456789101112 #include<stdio.h>#include<ctype.h>charchars[]={'A','a','z','Z'};#defineSIZEsizeof(chars)/sizeof(char)int main(){int i;for(i=0;i<SIZE;i++){printf("Char%cis%salowercasecharacter\n",chars[i],(islower(chars[i]))?"":"not");}return0;}

isupper

函数名称: isupper函数原型: int isupper(int ch);函数功能: 检查ch是否是大写字母(A-Z)函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213 #include<stdio.h>#include<ctype.h>charchars[]={'A','a','z','Z'};#defineSIZEsizeof(chars)/sizeof(char)int main(){inti;for(i=0;i<SIZE;i++){printf("Char%cis%sanuppercasecharacter\n",chars[i],(isupper(chars[i]))?"":"not");}return0;}

tolower

函数名称: tolower函数原型: int tolower(int ch);函数功能: 将ch字符转换为小写字母函数返回: 返回ch所代表的字符的小写字母参数说明:所属文件: <ctype.h>
123456789101112 #include<stdio.h>#include<stdlib.h>#include<ctype.h>intmain(){charx='a',y='b',z='A',w='*';printf("Character%ctoloweris%c\n",x,tolower(x));printf("Character%ctoloweris%c\n",y,tolower(y));printf("Character%ctoloweris%c\n",z,tolower(z));printf("Character%ctoloweris%c\n",w,tolower(w));return0;}

toupper

函数名称: toupper函数原型: int toupper(int ch);函数功能: 将ch字符转换成大写字母函数返回: 与ch相应的大写字母参数说明:所属文件: <ctype.h>
123456789101112 #include<stdio.h>#include<stdlib.h>#include<ctype.h>int main(){charx='a',y='b',z='A',w='*';printf("Character%ctoupperis%c\n",x,toupper(x));printf("Character%ctoupperis%c\n",y,toupper(y));printf("Character%ctoupperis%c\n",z,toupper(z));printf("Character%ctoupperis%c\n",w,toupper(w));return0;}

isalnum

函数名称: isalnum函数原型: int isalnum(int ch);函数功能: 检查ch是否是字母或数字函数返回: 是字母或数字返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>intmain(){charch1='*';charch2='a';if(isalnum(ch1)!=0)printf("%cistheASCIInumberoralphebet\n",ch1);elseprintf("%cisnottheASCIInumbernoralphebet\n",ch1);if(isalnum(ch2)!=0)printf("%cistheASCIInumberoralphebet\n",ch2);elseprintf("%cisnottheASCIInumbernoralphebet\n",ch2);return0;}

isprint

函数名称: isprint函数原型: int isprint(int ch);函数功能: 检查ch是否是可打印字符(包括空格),其ASCII码在0x20到0x7E之间函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>intmain(){charch1='\n';charch2='a';if(isprint(ch1)!=0)printf("%cistheASCIIprintablecharcater\n",ch1);elseprintf("%cisnottheASCIIprintablecharcater\n",ch1);if(isprint(ch2)!=0)printf("%cistheASCIIprintablecharcater\n",ch2);elseprintf("%cisnottheASCIIprintablecharcater\n",ch2);return0;}

ispunct

函数名称: ispunct函数原型: int ispunct(int ch);函数功能: 检查ch是否是标点字符(不包括空格),即除字母,数字和空格以外的所有可打印字符函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>intmain(){charch1=',';charch2='a';if(ispunct(ch1)!=0)printf("%cistheASCIIpunct\n",ch1);elseprintf("%cisnottheASCIIpunct\n",ch1);if(ispunct(ch2)!=0)printf("%cistheASCIIpunct\n",ch2);elseprintf("%cisnottheASCIIpunct\n",ch2);return0;}

isspace

函数名称: isspace函数原型: int isspace(int ch);函数功能: 检查ch是否是空格符和跳格符(控制字符)或换行符函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>intmain(){charch1='';charch2='a';if(isspace(ch1)!=0)printf("%cisthespacecharcater\n",ch1);elseprintf("%cisnotthespacecharcater\n",ch1);if(isspace(ch2)!=0)printf("%cisthespacecharcater\n",ch2);elseprintf("%cisnotthespacecharcater\n",ch2);return0;}

isxdigit

函数名称: isxdigit函数原型: int isxdigit(int ch);函数功能: 检查ch是否是一个16进制数学字符(即0-9,或A-F,或a-f)函数返回: 是返回非0,否则返回0参数说明:所属文件: <ctype.h>
12345678910111213141516 #include<stdio.h>#include<ctype.h>intmain(){charch1='1';charch2='a';if(isxdigit(ch1)!=0)printf("%cistheASCIIhexadecimalnumber\n",ch1);elseprintf("%cisnottheASCIIhexadecimalnumber\n",ch1);if(isxdigit(ch2)!=0)printf("%cistheASCIIhexadecimalnumber\n",ch2);elseprintf("%cisnottheASCIIhexadecimalnumber\n",ch2);return0;}

isascii

函数名称: isascii函数原型: int isascii(int ch)函数功能: 测试参数是否是ASCII码0-127函数返回: 是返回非0,否则返回0参数说明: ch-被测参数所属文件: <ctype.h>
1234567891011121314 #include<stdio.h>#include<ctype.h>charchars[]={'A',0x80,'Z'};#defineSIZEsizeof(chars)/sizeof(char)intmain(){inti;for(i=0;i<SIZE;i++){printf("Char%cis%sanASCIIcharacter\n",chars[i],(isascii(chars[i]))?"":"not");}return0;}

isblank

函数名称: isblank函数原型: int isblank(int ch)函数功能: 测试参数是否是一个标准的空白字符(空格、水平制表符或者换行)或者任何其他本地化指定为空白符的字母函数返回: 是返回非0,否则返回0参数说明: ch-被测参数所属文件: <ctype.h>