C语言具有测试或操纵单个字符的函数。这些函数都在ctype.h
头文件中定义。
所以,如需要使用CTYPE
函数,则ctype.h
头文件必须包含在源代码中:
#include <ctype.h>
CTYPE
函数分为两类:测试和操作。下表列出了测试函数:
函数 | 描述 |
---|---|
isalnum(ch) |
判断是否字母(大写或小写)或数字 |
isalpha(ch) |
判断是否为字母表的大写或小写字母 |
isascii(ch) |
判断是否为ASCII值,范围为0 到127 |
isblank(ch) |
判断是否为制表符或空格或其他空白字符 |
iscntrl(ch) |
判断是否为控制代码字符,值范围:0 到31 ,以及127 |
isdigit(ch) |
判断是否为字符0 到9 |
isgraph(ch) |
判断是否为除空格外的任何可打印字符 |
ishexnumber(ch) |
判断是否为十六进制数字,0 到9 或A 到F (大写或小写) |
islower(ch) |
判断是否为字母表的小写字母,a 到z |
isnumber(ch) |
详见:isdigit() |
isprint(ch) |
判断是否为可以显示的任何字符,包括空格 |
ispunct(ch) |
判断是否为标点符号 |
isspace(ch) |
判断是否为空白字符,空格,制表符和换页符等 |
isupper(ch) |
判断是否为字母表的大写字母,A 到Z 。 |
isxdigit(ch) |
详见:ishexnumber() |
操作函数
函数 | 描述 |
---|---|
toascii(ch) |
ch 字符的ASCII码值,取值范围为0 ~127 |
tolower(ch) |
ch 字符的小写形式 |
toupper(ch) |
ch 字符的大写形式 |
一般来说,测试函数以is
开头,而转换函数则以to
。每个CTYPE
函数都接受一个int
值作为参数,每个CTYPE
函数都返回一个int
值。
1. 示例代码
#include <stdio.h>
#include <ctype.h>
int main()
{
char phrase[] = "this is a test.";
int index,alpha,blank,punct;
alpha = blank = punct = 0;
/* 收集数据资料 */
index = 0;
while(phrase[index])
{
if(isalpha(phrase[index]))
alpha++;
if(isblank(phrase[index]))
blank++;
if(ispunct(phrase[index]))
punct++;
index++;
}
/* 打印结果 */
printf("\\"%s\\"
",phrase);
puts("统计:");
printf("%d 个字母字符
",alpha);
printf("%d 个空格
",blank);
printf("%d 个标点符号
",punct);
return(0);
}
编译和执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc -o main main.c
hema@ubuntu:~/book$ ./main
"this is a test."
统计:
11 个字母字符
3 个空格
1 个标点符号