返回介绍

6.3 字符函数库 cctype

发布于 2024-10-08 23:14:04 字数 2620 浏览 0 评论 0 收藏 0

C++从 C 语言继承了一个与字符相关的、非常方便的函数软件包,它可以简化诸如确定字符是否为大写字母、数字、标点符号等工作,这些函数的原型是在头文件 cctype(老式的风格中为 ctype.h)中定义的。例如,如果 ch 是一个字母,则 isalpha(ch)函数返回一个非零值,否则返回 0。同样,如果 ch 是标点符号(如逗号或句号),函数 ispunct(ch)将返回 true。(这些函数的返回类型为 int,而不是 bool,但通常 bool 转换让您能够将它们视为 bool 类型。)

使用这些函数比使用 AND 和 OR 运算符更方便。例如,下面是使用 AND 和 OR 来测试字符 ch 是不是字母字符的代码:

与使用 isalpha( ) 相比:

isalpha( ) 不仅更容易使用,而且更通用。AND/OR 格式假设 A-Z 的字符编码是连续的,其他字符的编码不在这个范围内。这种假设对于 ASCII 码来说是成立的,但通常并非总是如此。

程序清单 6.8 演示一些 ctype 库函数。具体地说,它使用 isalpha( ) 来检查字符是否为字母字符,使用 isdigits( ) 来测试字符是否为数字字符,如 3,使用 isspace( ) 来测试字符是否为空白,如换行符、空格和制表符,使用 ispunct( ) 来测试字符是否为标点符号。该程序还复习了 if else if 结构,并在一个 while 循环中使用了 cin.get(char)。

程序清单 6.8 cctypes.cpp

下面是该程序的运行情况。注意,空白字符计数中包括换行符:

表 6.4 对 cctype 软件包中的函数进行了总结。有些系统可能没有表中列出的一些函数,也可能还有在表中没有列出的一些函数。

表 6.4 cctype 中的字符函数

函 数 名 称

返 回 值

isalnum( )

如果参数是字母数字,即字母或数字,该函数返回 true

isalpha( )

如果参数是字母,该函数返回 true

iscntrl( )

如果参数是控制字符,该函数返回 true

isdigit( )

如果参数是数字(0~9),该函数返回 true

isgraph( )

如果参数是除空格之外的打印字符,该函数返回 true

islower( )

如果参数是小写字母,该函数返回 true

isprint( )

如果参数是打印字符(包括空格),该函数返回 true

ispunct( )

如果参数是标点符号,该函数返回 true

isspace( )

如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符或者垂直制表符,该函数返回 true

isupper( )

如果参数是大写字母,该函数返回 true

isxdigit( )

如果参数是十六进制数字,即 0~9、a~f 或 A~F,该函数返回 true

tolower( )

如果参数是大写字符,则返回其小写,否则返回该参数

toupper( )

如果参数是小写字符,则返回其大写,否则返回该参数

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文