[学习标准库]ctype.h
概述:
ctype.h为我们提供了很多了与字符相关的判断或处理函数,方便地对字符做判断和转换大小写等处理。
下面以函数为单位进行学习。
isalnum
功能:
测试传入参数其对应的ASCII符号是否为数字或英文字母,当传入参数为A~Z、a~z、0~9,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符A~Z、a~z、0~9或数65~90、97~122、48~57。
isalpha
功能:
测试传入参数其对应的ASCII符号是否为英文字母,当传入参数为A~Z、a~z,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符A~Z、a~z或数65~90、97~122。
isdigit
功能:
测试传入参数其对应的ASCII符号是否为阿拉伯数字,当传入参数为0~9,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符0~9,或数48~57。
isxdigit
功能:
测试传入参数是否为十六进制数字字符,当传入参数为0~9、A~F、a~f,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符0~9、a~f、A~F或数48~57、65~70、97~102。
isupper
功能:
测试传入参数是否为大写英文字母,当传入参数为A~Z,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符A~Z或数97~122。
islower
功能:
测试传入参数是否为小写英文字母,当传入参数为a~z,则函数返回非零值,否则返回零。
返回非零值的状况:传入字符a~z或数97~122。
isascii
功能:
测试传入参数是否为有效的ASCII字符,当传入参数为有效的ASCII标准字符时,函数返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为0~127的字符或者传入数0~127。
isgraph
功能:
测试传入参数是否为除空格外的可输出字符,是则返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为33~126的字符或者传入数33~126。
isprint
功能:
测试传入参数是否为可输出字符,是则返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为32~126的字符或者传入数32~126。
isspace
功能:
测试传入参数是否为空字符,是则返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为9、10、11、12、13、32的字符或者这几个数。
iscntrl
功能:
测试传入参数是否为控制字符,当传入参数为控制字符时,函数返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为0~31、127的字符或者这些数。
ispunct
功能:
测试传入参数是否为标点符号,是则函数返回非零值,否则返回零。
返回非零值的状况:传入对应ASCII码为33~47、58~64、91~96、123~126的字符或这些数。
iscsym
功能:
测试传入参数是否为英文字母、下划线或者数字,若是则函数返回非零值,否则返回零。
返回非零值的状况:传入字符0~9、A~Z、_、a~z或数48~57、65~90、95、97~122。
toupper
功能:
将输入的小写英文字母转换为大写英文字母,若传入的不为小写英文字母,则返回原字符。
注:_toupper与其处理方式不同,是均返回 (原字符-32) 。
tolower
功能:
将输入的大写英文字母转换为小写英文字母,若传入的不为大写英文字母,则返回原字符。
注:_tolower与其处理方式不同,是均返回 (原字符+32) 。
另:
以上函数均适用于标准ASCII码的相关处理,即0~127范围,该头文件中也提供了处理宽字符时相应的函数版本,即形如iswalnum、iswalpha等,功能与此类似,在此就不一一列举,对以上大部分函数可以使用以下程序来做一个简单的测试:
#include <iostream> #include <cctype> int main() { int i; for(i=0; i<128; i++) { int j = 要测试的函数名(i); char c = i; if(0!=j) std::cout << i << '\t' << c << std::endl; } return 0; }
以上内容撰写时参考:
《C++函数库查询辞典》 中国铁道出版社
WinIDE库函数使用手册 http://www.ggv.com.cn/forum/clib/clib.html