2. 字符函数
2.1 字符分类函数
函数 | 如果它的参数符合下列条件就返回真 |
incntrl | 任何控制字符 |
isspace | 空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’ |
isdigit | 十进制数字 0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母 a~f,大写字母 A~F |
islower | 小写字母 a~z |
isupper | 大写字母 A~Z |
isalpha | 字母 a~z或 A~Z |
isalnum | 字母或数字 a~z, A~Z, 0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
2.1.1 iscntrl
int iscntrl( int c );
控制字符:0~31及127(共33个)为控制字符或通讯专用字符,如换行,回车,换页,删除等控制字符,SOH(文头)、EOT(文尾)、ACK(确认)等通讯专用字符。
样例:
int main() { int ret = iscntrl('\n'); printf("%d\n", ret); ret = iscntrl('a'); printf("%d\n", ret);//不是控制字符,返回假(0) ret = iscntrl('1'); printf("%d\n", ret); return 0; }
运行结果:
2.1.2 isspace
int isspace( int c );
空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’。
样例:
int main() { int ret = isspace('\t'); printf("%d\n", ret); ret = isspace(' '); printf("%d\n", ret); ret = isspace('\v'); printf("%d\n", ret); ret = isspace('1');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.3 isdigit
int isdigit( int c );
十进制数字 0~9
样例:
int main() { int ret = isdigit('9'); printf("%d\n", ret); //ret = isdigit('10');//err 不是0~9,为字符串 //printf("%d\n", ret); ret = isdigit('a'); printf("%d\n", ret); }
运行结果:
2.1.4 isxdigit
int isxdigit( int c );
十六进制数字,包括所有十进制数字,小写字母 a~f,大写字母 A~F
样例:
int main() { int ret = isxdigit('9');//0~9 printf("%d\n", ret); ret = isxdigit('a');//a~f printf("%d\n", ret); ret = isxdigit('E');//A~F printf("%d\n", ret); ret = isxdigit('\n');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.5 islower
int islower( int c );
小写字母 a~z
样例:
int main() { int ret = islower('a'); printf("%d\n", ret); ret = islower('z'); printf("%d\n", ret); ret = islower('\n');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.6 isupper
int isupper( int c );
大写字母 A~Z
样例:
int main() { int ret = isupper('A'); printf("%d\n", ret); ret = isupper('Z'); printf("%d\n", ret); ret = isupper('a');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.7 isalpha
int isalpha( int c );
字母 a~z或 A~Z
样例:
int main() { int ret = isalpha('A');//真 printf("%d\n", ret); ret = isalpha('G');//真 printf("%d\n", ret); ret = isalpha('a');//真 printf("%d\n", ret); ret = isalpha('\n');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.8 isalnum
int isalnum( int c );
字母或数字 a~z, A~Z, 0~9
样例:
int main() { int ret = isalnum('A');//真 printf("%d\n", ret); ret = isalnum('a');//真 printf("%d\n", ret); ret = isalnum('8');//真 printf("%d\n", ret); ret = isalnum('\n');//假 printf("%d\n", ret); return 0; }
运行结果:
2.1.9 ispunct
int ispunct( int c );
标点符号,任何不属于数字或者字母的图形字符(可打印)
简单来说就是除了数字和字母的任何其他可见字符,总体来说就是标点符号
样例:
int main() { int ret = ispunct(',');//逗号 printf("%d\n", ret); ret = ispunct('!');//感叹号 printf("%d\n", ret); ret = ispunct('7');//err 数字 printf("%d\n", ret); ret = ispunct('a');//err 字母 printf("%d\n", ret); ret = ispunct(' ');//空白字符,不可见 printf("%d\n", ret); return 0; }
运行结果:
2.1.10 isgraph
int isgraph( int c );
任何图形字符
图形字符:除空格以外的任何可打印字符。可以理解为就是检测一个字符是否是一个可见字符。
样例:
int main() { int ret = isgraph('1');//ok printf("%d\n", ret); ret = isgraph('!');//ok printf("%d\n", ret); ret = isgraph('a');//ok printf("%d\n", ret); ret = isgraph(1);//笑脸的ascii码值 不可见字符 printf("%d\n", ret); return 0; }
运行结果:
2.1.11 isprint
int isprint( int c );
任何可打印字符,包括图形字符和空白字符
样例:
int main() { int ret = isprint('a');//字母 printf("%d\n", ret); ret = isprint(' ');//空白字符 printf("%d\n", ret); ret = isprint(',');//标点符号 printf("%d\n", ret); ret = isprint(1);//不可见字符 printf("%d\n", ret); return 0; }
运行结果:
2.2 字符转换函数
2.2.1 tolower
int tolower( int c );
将大写字符转换为小写,其他字符则不进行操作
int main() { char ch1 = '1'; char ch2 = 'A'; char ch3 = 'a'; printf("%c\n", tolower(ch1)); printf("%c\n", tolower(ch2)); printf("%c\n", tolower(ch3)); return 0; }
运行结果:
2.2.2 toupper
int toupper( int c );
将小写字符转换为大写,其他字符则不进行操作
int main() { char ch1 = '1'; char ch2 = 'A'; char ch3 = 'a'; printf("%c\n", toupper(ch1)); printf("%c\n", toupper(ch2)); printf("%c\n", toupper(ch3)); return 0; }
运行结果: