GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::ctype::is,std::ctype::do_is(3) C++ Standard Libary std::ctype::is,std::ctype::do_is(3)

std::ctype::is,std::ctype::do_is - std::ctype::is,std::ctype::do_is


Defined in header <locale>
public: (1)
bool is(mask m, CharT c) const;
public: (2)
const CharT* is(const CharT* low, const CharT* high, mask* vec) const;
protected: (3)
virtual bool do_is(mask m, CharT c) const;
protected:
virtual const CharT* do_is(const CharT* low, const CharT* high, mask* vec) (4)
const;


1,2) public member function, calls the protected virtual member function do_is of
the most derived class.
3) Checks if the character c is classified by the mask m
4) For every character in the character array [low, high), identifies the complete
classification mask (e.g. digit|xdigit|alnum|print|graph for the digit '0' in the
default locale), and stores the masks in the corresponding elements of the array
pointed to by vec


c - character to classify
m - mask to use for classifying a single character
low - pointer to the first character in an array of characters to classify
high - one past the end pointer for the array of characters to classify
vec - pointer to the first element of the array of masks to fill


1,3) true if c is classified by m
2,4) high

// Run this code


#include <locale>
#include <utility>
#include <vector>
#include <iostream>


// utility wrapper to make locale-bound facets destructible
template<class Facet>
struct deletable_facet : Facet
{
template<class ...Args>
deletable_facet(Args&& ...args) : Facet(std::forward<Args>(args)...) {}
~deletable_facet() {}
};


int main()
{
// classify a single character using the default locale
auto& f = std::use_facet<std::ctype<char>>(std::locale());
char c = '0';
if (f.is(std::ctype_base::digit, c)) // or isdigit(c, locale());
{
std::cout << "'" << c << "' is a digit\n";
}


// classify every character in a string using a named locale
deletable_facet<std::ctype_byname<wchar_t>> f2("en_US.utf8");
std::wstring str = L"z\u00df\u6c34\U0001d10b";
std::vector<std::ctype_base::mask> vec(str.size());
f2.is(&str[0], &str[0] + str.size(), &vec[0]);


for (std::size_t n = 0; n < str.size(); ++n) {
std::cout << std::hex << "U+" << str[n] << " is: ";
if (vec[n] & std::ctype_base::alnum)
std::cout << " alnum ";
if (vec[n] & std::ctype_base::punct)
std::cout << " punct ";
std::cout << '\n';
}
}


'0' is a digit
U+7a is: alnum
U+df is: alnum
U+6c34 is: alnum
U+1d10b is: punct


classifies a character or a character sequence, using the classification
is table
(public member function of std::ctype<char>)
iswctype classifies a wide character according to the specified LC_CTYPE category
(function)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.