類模板
<locale>

std::ctype

template <class charT> class ctype;
字元型別屬性

ctype 標準屬性分類和轉換字元,將 C 庫標頭檔案 <cctype> 的功能適配到 C++ locale

ctype 類模板有一個受保護的解構函式:程式應該只構造派生類的物件,或者使用安裝在 locale 物件中的物件(透過 use_facet)。

所有標準的 locale 物件都支援 ctype 類模板的至少以下屬性例項化,作為 ctype 類別的一部分。
locale 物件中的屬性描述
ctype<char>窄字元
對於 *用特定實現特化的經典 locale,產生與標頭檔案 <cctype> 中的函式相同的結果(參見下文的特化)。
ctype<wchar_t>寬字元

模板引數

charT
字元型別。
別名為成員 char_type

成員型別

成員型別定義描述
char_type模板引數(charT字元型別
該類還繼承了 ctype_base::mask,它作為成員函式的引數和返回型別被廣泛使用(參見 ctype_base)。

成員常量

以下成員常量從 ctype_base 繼承;它們用於標識字元類別。
成員常量型別描述
spacectype_base::mask未指定(唯一位)空白字元
printctype_base::mask未指定(唯一位)可列印字元
cntrlctype_base::mask未指定(唯一位)控制字元
upperctype_base::mask未指定(唯一位)大寫字母
lowerctype_base::mask未指定(唯一位)小寫字母
alphactype_base::mask未指定(唯一位)字母字元
digitctype_base::mask未指定(唯一位)十進位制數字
punctctype_base::mask未指定(唯一位)標點符號字元
xdigitctype_base::mask未指定(唯一位)十六進位制數字
alnumctype_base::maskalpha|digit字母數字字元
graphctype_base::maskalnum|punct具有圖形表示的字元
成員常量型別描述
spacectype_base::mask未指定(唯一位)空白字元
printctype_base::mask未指定(唯一位)可列印字元
cntrlctype_base::mask未指定(唯一位)控制字元
upperctype_base::mask未指定(唯一位)大寫字母
lowerctype_base::mask未指定(唯一位)小寫字母
alphactype_base::mask未指定(唯一位)字母字元
digitctype_base::mask未指定(唯一位)十進位制數字
punctctype_base::mask未指定(唯一位)標點符號字元
xdigitctype_base::mask未指定(唯一位)十六進位制數字
blankctype_base::mask未指定(唯一位)空白字元
alnumctype_base::maskalpha|digit字母數字字元
graphctype_base::maskalnum|punct具有圖形表示的字元
有關 ASCII 字元如何根據這些類別進行分類的詳細資訊,請參閱 <cctype>

該類還包含一個公共靜態常量,型別為 locale::id,它唯一標識具有 ctype 語義的屬性。

公開成員函式


字元分類


字元轉換


虛保護成員函式

該類定義了虛保護成員,它們透過預設方式實現各自公共成員函式的行為。

以及類解構函式

特化

在所有庫實現中,至少提供了該模板的以下特化:
特化
ctype<char>
ctype<wchar_t>

特定特化:ctype<char>

char 特化上,一些成員函式是*內聯*實現的,而不是呼叫它們的 do_ 對應函式(對於成員 isscan_isscan_not 也是如此)。

它有一個不同的建構函式,並維護一個內部的 ctype::mask 型別元素的,其中包含字元集中每個字元的分類:陣列中每個元素的值對應於其順序位置給出的字元的分類。

該表的大小由一個額外的靜態公共成員常量指示:
成員常量型別描述
table_sizeconst size_t實現特定(至少 256table 的大小
此特化包含兩個額外的 **protected** 成員:
此特化包含兩個額外的 **public** 成員:

請注意,do_isdo_scan_isdo_scan_not 不是 char 特化的成員。