概述:
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