1. 前言
The GNU C Library Reference Manual for version 2.35
2. 字符处理
Character Handling
处理字符和字符串的程序通常需要对字符进行分类——它是字母、数字、空格等等——并对字符执行大小写转换操作。为此目的提供了头文件 ctype.h 中的函数。
由于语言环境和字符集的选择可以改变特定字符代码的分类,所有这些功能都会受到当前语言环境的影响。(更准确地说,它们受当前为字符分类选择的语言环境的影响——LC_CTYPE 类别;请参阅语言环境类别)。
ISO C 标准规定了两组不同的功能。一组适用于 char 类型字符,另一组适用于 wchar_t 宽字符(请参阅扩展字符简介)。
2.1. 字符分类
Classification of Characters
本节介绍用于对字符进行分类的库函数。例如,isalpha 是测试字母字符的函数。它接受一个参数,即要测试的字符,如果字符是字母,则返回一个非零整数,否则返回零。你会像这样使用它:
if (isalpha (c))
printf ("The character `%c' is alphabetic.\n", c);
本节中的每个函数都测试特定字符类别的成员资格;每个都有一个以“is”开头的名称。它们中的每一个都接受一个参数,这是一个要测试的字符,并返回一个被视为布尔值的 int。字符参数作为 int 传递,它可能是常量值 EOF 而不是真正的字符。
任何给定字符的属性都可能因语言环境而异。有关语言环境的更多信息,请参阅语言环境和国际化。
这些函数在头文件 ctype.h 中声明。
函数:int islower (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是小写字母,则返回 true。字母不必来自拉丁字母,任何可表示的字母都是有效的。
函数:int isupper (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是大写字母,则返回 true。字母不必来自拉丁字母,任何可表示的字母都是有效的。
函数:int isalpha (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是字母字符(字母),则返回 true。如果 islower 或 isupper 对一个字符为真,那么 isalpha 也为真。
在某些语言环境中,可能存在 isalpha 为真的其他字符——既不是大写也不是小写的字母。但是在标准的“C”语言环境中,没有这样的附加字符。
函数:int isdigit (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是十进制数字(“0”到“9”),则返回 true。
函数:int isalnum (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是字母数字字符(字母或数字),则返回 true;换句话说,如果 isalpha 或 isdigit 对一个字符为真,那么 isalnum 也为真。
函数:int isxdigit (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是十六进制数字,则返回 true。十六进制数字包括正常的十进制数字“0”到“9”以及字母“A”到“F”和“a”到“f”。
函数:int ispunct (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是标点符号,则返回 true。这意味着任何不是字母数字或空格字符的打印字符。
函数:int isspace (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是空白字符,则返回 true。在标准的“C”语言环境中,isspace 仅对标准空白字符返回 true:
' ' 空格
'\F' 换页
'\n' 新行
'\r' 回车
'\t' 水平制表符
'\v' 垂直制表符
函数:int isblank (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是空白字符,则返回 true;即空格或制表符。该功能最初是 GNU 扩展,但在 ISO C99 中添加。
函数:int isgraph (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是图形字符,则返回 true;也就是说,一个字符与一个字形相关联。空白字符不被视为图形。
函数:int isprint (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是打印字符,则返回 true。打印字符包括所有图形字符,加上空格(’ ')字符。
函数:int iscntrl (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是控制字符(即不是打印字符的字符),则返回 true。
函数:int isascii (int c)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
如果 c 是适合美国/英国 ASCII 字符集的 7 位无符号字符值,则返回 true。该函数是 BSD 扩展

这篇博客介绍了C语言中处理字符和字符串的方法,特别是字符分类和大小写转换。文章详细阐述了ctype.h头文件中的函数,如isalpha、isdigit等,以及宽字符的处理,包括wctype_t和wctrans_t类型,以及iswctype和towctrans函数。内容涵盖了字符分类、大小写转换、宽字符的特性及其在不同语言环境下的行为。
最低0.47元/天 解锁文章
898

被折叠的 条评论
为什么被折叠?



