阅读量:0
ctype.h系列的字符函数
链接: ctype.h
在代码中,本意是将字符转换,但过程中标点也会被转换,这是因为对应的ASCII码会被相对应的转换,如果程序值转换字母,保留所有的非字母字符(不是空格会更好)。
C语言中有一系列专门处理字符的函数,ctype.h头文件包含了这些函数的原型。
这些函数接受一个字符作为参数,如果该字符属于某特殊的类别,就返回一个非零值(真);否则,返回0(假)。
#include<stdio.h> #include<ctype.h> int main() { char ch; while ((ch = getchar()) != '\n') { //判断:如果是一个字符 if (isalpha) { putchar(ch + 1); } else { putchar(ch); } putchar(ch); } return 0; }
以isalpha()函数举例,如果isalpha()函数的参数是一个字母,则返回一个非零值。
- 表1:ctype.h头文件中的字符测试函数
函数名 | 如果是下列参数时,返回值为真 |
---|---|
isalnum() | 字母数字(字母或者数字) |
isalpha() | 字母 |
isblank() | 标准的空白字符(空格、水平制表符或换行符)或任何其他本地化指定为空白的字符 |
iscntrl() | 控制字符,如Ctrl+B |
isdigit() | 数字 |
isgraph() | 除空格之外的任意可打印字符 |
islower() | 小写字符 |
isprint() | 可打印字符 |
ispunct() | 标点符号(除空格或字母数字字符以外的任何可打印字符) |
isspace() | 空白字符(空格、换行符、换页符、回车符、垂直制表符、水平制表符或者其他本地化定义的字符) |
isupper() | 大写字母 |
isxdigit() | 十六进制数字符 |
- 表2:ctype.h头文件中的字符映射函数
函数名 | 行为 |
---|---|
tolower() | 如果参数是大写字符,该函数返回小写字符;否则,返回原始参数 |
toupper() | 如果参数是小写字符,该函数返回大写字符,否则,返回原始参数 |
表1和表2列出了ctype.h头文件中的一些函数,有些函数设计本地化,指的是为适应特定区域的使用习惯修改或者扩展C基本用法的工具。(例如,许多国家在书写小数点时,用逗号代替点号,于是特殊的本地化可以指定C编译器使用逗号以相同的方式输出浮点数)
【注意】字符映射函数不会修改原始的参数,这些函数只会返回已经修改的值,