-
ctype.h
鎖定
- 外文名
- ctype.h
- 字符類別
- 字母字符、控制字符
- 支持類別
- 字節字符,寬字符
ctype.h實現
例如,創建一個由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函數
單字節字符處理函數在ctype.h(C++的cctype)中聲明。寬字節字符處理函數在wctype.h(C++的cwctype)中聲明.
單字節 | 寬字節 | 描述 |
---|---|---|
iswalnum | 是否為字母數字 | |
iswalpha | 是否為字母 | |
iswlower | 是否為小寫字母 | |
iswupper | 是否為大寫字母 | |
iswdigit | 是否為數字 | |
iswxdigit | 是否為16進制數字 | |
iswcntrl | 是否為控制字符 | |
iswgraph | 是否為圖形字符(例如,空格、控制字符都不是) | |
iswspace | 是否為空格字符(包括製表符、回車符、換行符等) | |
isblank | iswblank | |
iswprint | 是否為可打印字符 | |
iswpunct | 是否為標點 | |
towlower | 轉換為小寫 | |
towupper | 轉換為大寫 | |
不適用 | iswctype | 檢查一個wchar_t是否是屬於指定的分類 |
不適用 | towctrans | 使用指定的變換映射來轉換一個wchar_t(實際上是大小寫的轉換) |
不適用 | wctype | 返回一個寬字符的類別,用於iswctype函數 |
不適用 | wctrans | 返回一個變換映射,用於towctrans |
ctype.h字符類
序號 | 字符類 & 描述 |
1 | 數字 完整的數字集合 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } |
2 | 十六進制數字 集合 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f } |
3 | 小寫字母 集合 { a b c d e f g h i j k l m n o p q r s t u v w x y z } |
4 | 大寫字母 集合 {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z } |
5 | 字母 小寫字母和大寫字母的集合 |
6 | 字母數字字符 數字、小寫字母和大寫字母的集合 |
7 | 標點符號字符 集合 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
8 | 圖形字符 字母數字字符和標點符號字符的集合 |
9 | 空格字符 製表符、換行符、垂直製表符、換頁符、回車符、空格符的集合。 |
10 | 控制字符 在 ASCII 編碼中,這些字符的八進制代碼是從 000 到 037,以及 177(DEL)。 |
11 | 空白字符 包括空格符和製表符。 |
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:32次歷史版本
- 最近更新: 晨光与真彩7