热门问题
时间线
聊天
视角

ctype.h

来自维基百科,自由的百科全书

Remove ads

ctype.hC標準函數庫中的標頭檔,定義了一批C語言字元分類函數(C character classification functions),用於測試字元是否屬於特定的字元類別,如字母字元、控制字元等等。既支援單位元組字元,也支援寬字元[1]

實現

現代的C庫中,字元分類函數一般不用比較測試(comparison tests)實現,而是靜態查表來實現。

例如,建立一個由256個8位元寬整陣列成的陣列,每個整數的每位對應字元的特定的分類性質,如屬於數字、屬於字母等等。如果最低位表示屬於數字性質,那麼可以寫成如下代碼:

#define isdigit(x) (TABLE[x] & 1)

早期版本的Linux使用了潛在犯錯的方法,類似於:

#define isdigit(x) ((x) >= '0' && (x) <= '9')

這會產生問題,如巨集參數x具有副作用---例如,如果呼叫isdigit(x++)isdigit(run_some_program()),可能不是很顯然,isdigit的參數將被求值兩次。所以,查表的方法被廣泛使用。

函數

單位元組字元處理常式在ctype.h(C++的cctype )中聲明。寬位元組字元處理常式在wctype.h(C++的cwctype)中聲明.

更多資訊 單位元組, 寬位元組 ...
Remove ads

參考文獻

外部連結

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads