簡介:
頭文件ctype.h聲明了一組用于分類和轉(zhuǎn)換單個(gè)字符的函數(shù)。所有的函數(shù)都接收一個(gè)int型的參數(shù),并返回一個(gè)int——返回的int可能代表一個(gè)字符,也可能代表的是bool值(0為假,非0為真)。
你可能會(huì)有疑問,既然是字符操作,接受的參數(shù)為什么不用char,而用int? Good question,答案我也不確定……O_O
好吧,我們繼續(xù)……
因?yàn)檫@些“函數(shù)”太過常用,且調(diào)用頻繁,所以為了提高效率,這些“函數(shù)”是由一些宏實(shí)現(xiàn)的,通過查看源文件可以很容易發(fā)現(xiàn)這一點(diǎn)。還有一點(diǎn)需要了解的是,如果修改了區(qū)域設(shè)置(默認(rèn)為“C”區(qū)域設(shè)置),這些函數(shù)的行為可能會(huì)略有不同,不過不用擔(dān)心,現(xiàn)在只需要知道有這么一個(gè)概念,后面介紹區(qū)域設(shè)置(locale.h)會(huì)再詳細(xì)討論。它們可以分為兩組。一組用來判斷字符是否屬于某個(gè)分類,包括:
名稱 |
簽名 |
描述 |
isalnum |
int isalnum ( int c ); |
數(shù)字或字母 |
isalpha |
int isalpha ( int c ); |
字母,或者那些實(shí)現(xiàn)定義的字符集中iscntrl,isdigit,ispunct,isspace判定都不為真的字符。在“C”區(qū)域設(shè)置里,isalpha只是isupper,islower返回真的字符 |
iscntrl |
int iscntrl ( int c ); |
控制字符,與isprint相反,即不可打印字符 |
isdigit |
int isdigit ( int c ); |
十進(jìn)制數(shù)字字符 |
isgraph |
int isgraph ( int c ); |
除空格(' ')以外的其他可打印(isprint為true)字符 |
islower |
int islower ( int c ); |
小寫字母 |
isprint |
int isprint ( int c ); |
包括空格(' ')在內(nèi)的打印字符 |
ispunct |
int ispunct ( int c ); |
除空格(' ')和isalnum判定為真的字符以外的所有打印字符 |
isspace |
int isspace ( int c ); |
空白字符 |
isupper |
int isupper ( int c ); |
大寫字母 |
isxdigit |
int isxdigit ( int c ); |
16進(jìn)制數(shù)字字符 |
另外一組用來轉(zhuǎn)換大小寫,包括:
名稱 |
簽名 |
描述 |
toupper |
int toupper ( int c ); |
轉(zhuǎn)換c為大寫 |
tolower |
int tolower ( int c ); |
轉(zhuǎn)換c為小寫 |
|