| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Member functions of ctype<char> | ||||
Defined in header <locale> | ||
template<class CharT> class ctype; | ||
Classctype encapsulates character classification features. All stream input operations performed throughstd::basic_istream<CharT> use thestd::ctype<CharT> of the locale imbued in the stream to identify whitespace characters for input tokenization. Stream output operations applystd::ctype<CharT>::widen() to narrow-character arguments prior to output.
Inheritance diagram
Contents |
The standard library is guaranteed to provide the following specializations (they arerequired to be implemented by any locale object):
Defined in header <locale> | |
std::ctype<char> | provides narrow character equivalents of the minimal "C" locale classification. This specialization uses table lookup for character classification |
| std::ctype<wchar_t> | provides wide character classification appropriate to the native character set |
| Type | Definition |
char_type | CharT |
| Member | Description |
std::locale::idid[static] | the identifier of thefacet |
constructs a newctype facet(public member function) | |
destructs actype facet(protected member function) | |
invokesdo_is(public member function)[edit] | |
invokesdo_scan_is(public member function)[edit] | |
invokesdo_scan_not(public member function)[edit] | |
invokesdo_toupper(public member function)[edit] | |
invokesdo_tolower(public member function)[edit] | |
invokesdo_widen(public member function)[edit] | |
invokesdo_narrow(public member function)[edit] |
[virtual] | classifies a character or a character sequence (virtual protected member function)[edit] |
[virtual] | locates the first character in a sequence that conforms to given classification (virtual protected member function)[edit] |
[virtual] | locates the first character in a sequence that fails given classification (virtual protected member function)[edit] |
[virtual] | converts a character or characters to uppercase (virtual protected member function)[edit] |
[virtual] | converts a character or characters to lowercase (virtual protected member function)[edit] |
[virtual] | converts a character or characters fromchar toCharT(virtual protected member function)[edit] |
[virtual] | converts a character or characters fromCharT tochar(virtual protected member function)[edit] |
| Type | Definition |
mask | unspecifiedBitmaskType type (enumeration, integer type, or bitset) |
space [static] | the value ofmask identifying whitespace character classification(public static member constant) |
print [static] | the value ofmask identifying printable character classification(public static member constant) |
cntrl [static] | the value ofmask identifying control character classification(public static member constant) |
upper [static] | the value ofmask identifying uppercase character classification(public static member constant) |
lower [static] | the value ofmask identifying lowercase character classification(public static member constant) |
alpha [static] | the value ofmask identifying alphabetic character classification(public static member constant) |
digit [static] | the value ofmask identifying digit character classification(public static member constant) |
punct [static] | the value ofmask identifying punctuation character classification(public static member constant) |
xdigit [static] | the value ofmask identifying hexadecimal digit character classification(public static member constant) |
blank [static](C++11) | the value ofmask identifying blank character classification(public static member constant) |
alnum [static] | alpha| digit (public static member constant) |
graph [static] | alnum| punct (public static member constant) |
The following example demonstrates modification of actype other thanctype<char> to tokenize a CSV file:
#include <iostream>#include <locale>#include <sstream> struct csv_whitespace: std::ctype<wchar_t>{bool do_is(mask m, char_type c)const{if((m& space)&& c== L' ')returnfalse;// space will NOT be classified as whitespace if((m& space)&& c== L',')returntrue;// comma will be classified as whitespace return ctype::do_is(m, c);// leave the rest to the base class}}; int main(){std::wstring in= L"Column 1,Column 2,Column 3\n123,456,789";std::wstring token; std::wcout<<"default locale:\n";std::wistringstream s1(in);while(s1>> token)std::wcout<<" "<< token<<'\n'; std::wcout<<"locale with modified ctype:\n";std::wistringstream s2(in); csv_whitespace* my_ws= new csv_whitespace; s2.imbue(std::locale(s2.getloc(), my_ws));while(s2>> token)std::wcout<<" "<< token<<'\n';}
Output:
default locale: Column 1,Column 2,Column 3 123,456,789locale with modified ctype: Column 1 Column 2 Column 3 123 456 789
| specialization ofstd::ctype for typechar (class template specialization)[edit] | |
| defines character classification categories (class)[edit] | |
| represents the system-suppliedstd::ctype for the named locale (class template)[edit] |