C语言“字符函数”详解(<ctype.h>库函数)

注:以下讲解的函数都包含在头文件<ctype.h>中

目录

字符分类函数

isalnum

isalpha

islower

isupper

isdigit

isxdigit

iscntrl

isgragh

isspace

isblank

isprint

ispunct

字符转换函数

tolower

toupper

总结几类字符

 控制字符(不可打印字符)

可打印字符

图形字符

空白字符

空格字符

标点字符

字母字符

数字字符


字符分类函数

        函数                功能(若“是”,则返回“真”,否则返回“假”)
        isalnum                检查一个字符是否是字母或数字
        isalpha                检查一个字符是否是字母
        islower                检查一个字符是否是小写字母
        isupper                检查一个字符是否是大写字母
        isdigit                检查字符是否为数字
        isxdigit                检查一个字符是否是十六进制的字符
        iscntrl                检查一个字符是否是控制字符
        isgragh                检查一个字符是否是图形字符
        isspace                检查一个字符是否是空白字符
        isblank        (C99)                检查一个字符是否是空格字符
        isprint                检查一个字符是否是可打印字符
        ispunct                检查一个字符是否是标点字符

isalnum

功能:检查一个字符是否是字母或数字

说明:字符为‘0’~‘9’、‘a’~‘z’、‘A’~‘Z’时,返回非零值,否则返回零

定义:

int isalnum( int ch );

示例:

  printf("%d\n", isalnum('7')); //返回值:4 —— 真
  printf("%d\n", isalnum('A')); //返回值:1 —— 真
  printf("%d\n", isalnum('z')); //返回值:2 —— 真
  printf("%d\n", isalnum('+')); //返回值:0 —— 假

isalpha

功能:检查一个字符是否是字母

说明:字符为‘a’~‘z’、‘A’~‘Z’时,返回非零值,否则返回零

定义:

int isalpha( int ch );

示例:

  printf("%d\n", isalpha('7')); // 0
  printf("%d\n", isalpha('A')); // 1
  printf("%d\n", isalpha('z')); // 2
  printf("%d\n", isalpha('+')); // 0

islower

功能:检查一个字符是否是小写字母

说明:字符为‘a’~‘z’时,返回非零值,否则返回零

定义:

int islower( int ch );

示例:

  printf("%d\n", islower('7')); // 0
  printf("%d\n", islower('A')); // 0
  printf("%d\n", islower('z')); // 2
  printf("%d\n", islower('+')); // 0

isupper

功能:检查一个字符是否是大写字母

说明:字符为‘A’~‘Z’时,返回非零值,否则返回零

定义:

int isupper( int ch );

示例:

  printf("%d\n", isupper('7')); // 0
  printf("%d\n", isupper('A')); // 1
  printf("%d\n", isupper('z')); // 0
  printf("%d\n", isupper('+')); // 0

isdigit

功能:检查字符是否为数字

说明:字符为‘0’~‘9’时,返回非零值,否则返回零

定义:

int isdigit( int ch );

示例:

  printf("%d\n", isdigit('7')); // 1
  printf("%d\n", isdigit('A')); // 0
  printf("%d\n", isdigit('g')); // 0
  printf("%d\n", isdigit('+')); // 0

isxdigit

功能:检查一个字符是否是十六进制的字符

说明:字符为‘0’~‘9’、‘a’~‘f’、‘A’~‘F’时,返回非零值,否则返回零

定义:

int isxdigit( int ch );

示例:

  printf("%d\n", isxdigit('7')); // 128
  printf("%d\n", isxdigit('A')); // 128
  printf("%d\n", isxdigit('H')); // 0
  printf("%d\n", isxdigit('b')); // 128
  printf("%d\n", isxdigit('g')); // 0
  printf("%d\n", isxdigit('+')); // 0

iscntrl

功能:检查一个字符是否是控制字符

说明:若是控制字符,返回非零值,否则返回零

        (控制字符:ASCLL编码 0x00 ~ 0x1F 及 0x7F)

定义:

int iscntrl( int ch );

示例:

  printf("%d\n", iscntrl('\x00')); // 32
  printf("%d\n", iscntrl('\x1F')); // 32
  printf("%d\n", iscntrl('\x7F')); // 32
  printf("%d\n", iscntrl('9')); // 0
  printf("%d\n", iscntrl('A')); // 0

isgragh

功能:检查一个字符是否是图形字符

说明:若是图形字符,返回非零值,否则返回零(C语言所有图形字符:

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ )

定义:

int isgraph( int ch );

示例:

  printf("%d\n", isgraph('5')); // 4
  printf("%d\n", isgraph('B')); // 1
  printf("%d\n", isgraph('f')); // 2
  printf("%d\n", isgraph('&')); // 16

isspace

功能:检查一个字符是否是空白字符

说明:若为空白字符(空格' ',换页'\f',换行'\n',回车'\r',水平制表符'\t',垂直制表符'\v')

           返回非零值,否则返回零

定义:

int isspace( int ch );

示例:

  printf("%d\n", isspace(' ')); // 8
  printf("%d\n", isspace('\r')); // 8
  printf("%d\n", isspace('f')); // 0
  printf("%d\n", isspace('&')); // 0

isblank

功能:检查一个字符是否是空格字符

说明:若为空格字符(空格' ',水平制表符'\t') 返回非零值,否则返回零

定义:

int isblank( int ch );

示例:

  printf("%d\n", isblank(' ')); // 1
  printf("%d\n", isblank('\t')); // 1
  printf("%d\n", isblank('\r')); // 0
  printf("%d\n", isblank('6')); // 0

isprint

功能:检查一个字符是否是可打印字符

说明:若为可打印字符(图形字符 + 空格字符) 返回非零值,否则返回零

定义:

int isprint( int ch );

示例:

  printf("%d\n", isprint(' ')); // 64
  printf("%d\n", isprint('*')); // 16
  printf("%d\n", isprint('8')); // 4
  printf("%d\n", isprint('\t')); // 0

ispunct

功能:检查一个字符是否是标点字符

说明:若为标点字符(! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ ) 返回非零值,否

           则返回零

定义:

int ispunct( int ch );

示例:

  printf("%d\n", ispunct('[')); // 16
  printf("%d\n", ispunct('*')); // 16
  printf("%d\n", ispunct('8')); // 0
  printf("%d\n", ispunct('b')); // 0

字符转换函数

        函数                                                        功能
        tolower                                                将字符转换成小写
        toupper                                                将字符转换成大写

tolower

功能:将字符(大写字母)转换成小写

定义:

int tolower( int ch );

示例:

  printf("%c\n", tolower('A')); // a
  printf("%c\n", tolower('H')); // h
  printf("%c\n", tolower('g')); // g(不变)

toupper

功能:将字符(小写字母)转换成大写

定义:

int toupper( int ch );

示例:

  printf("%c\n", toupper('a')); // A
  printf("%c\n", toupper('h')); // H
  printf("%c\n", toupper('G')); // G

总结几类字符

 控制字符(不可打印字符)

        ASCLL码编号:0 ~ 31 、 127

十进制缩写字符名十进制缩写字符名
0NUL16DLE数据链路转义
1SOH报头开始17DC1设备控制1
2STX正文开始18DC2设备控制2
3ETX正文结束19DC3设备控制3
4EOT传输结束20DC4设备控制4
5ENQ查询21NAK否认
6ACK确认22SYN同步空闲
7BEL振铃23ETB传输块结束
8BS退格24CAN取消
9HT水平制表25EM介质结束
10LF换行26SUB替换
11VT垂直制表27ESC转义
12FF换页28FS文件分隔符
13CR回车29GS分组符
14SO移出30RS记录分隔符
15SI移入31US单元分隔符
127DEL删除

可打印字符

        控制字符(不可打印字符)以外的其余字符

        (图形字符 + 空格' ')

图形字符

        标点字符 + 字母字符 + 数字字符

空白字符

编码转义字符解释编码转义字符解释
9        '\t'水平制表符12        '\f'换页键
10        '\n'换行键13        '\r'回车键
11        '\v'垂直制表符32        ' '空格

空格字符

编码转义字符解释编码转义字符解释

9

        '\t'水平制表符32        ' '空格

标点字符

编码字符编码标点编码标点
33!34"35#
36$37%38&
39'40(41)
42*43+44,
45-46.47/
58:59;60<
61=62>63?
64@91[92\
93]94^95_
96`123{124|
125}126~

字母字符

        ‘A’ ~ ‘Z’ :对应编号 65 ~ 90

        ‘a’ ~ ‘z’ :对应编号 97 ~ 122

数字字符

        ‘0’ ~ ‘9’ :对应编号 48 ~ 57

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值