Класс ctypectype Class

Класс, предоставляющий аспект, используемый для классификации символов, преобразования из верхнего и нижнего регистра, а также преобразования между собственной кодировкой и кодировкой, используемой языковым стандартом.A class that provides a facet that is used to classify characters, convert from upper and lower cases, and convert between the native character set and that set used by the locale.

СинтаксисSyntax

template <class CharType>
class ctype : public ctype_base;

ПараметрыParameters

CharTypeCharType
Тип, используемый внутри программы для кодирования символов.The type used within a program to encode characters.

КомментарииRemarks

Как и в случае любого другого аспекта языкового стандарта, начальное сохраненное значение статического идентификатора объекта равно нулю.As with any locale facet, the static object ID has an initial stored value of zero. Первая попытка получить доступ к сохраненному значению сохранит уникальное положительное значение в id.The first attempt to access its stored value stores a unique positive value in id. Критерии классификации получают вложенный тип битовой маски в базовом классе ctype_base.Classification criteria are provided a nested bitmask type in the base class ctype_base.

Стандартная библиотека C++ определяет две явные специализации этого шаблона класса:The C++ Standard Library defines two explicit specializations of this class template:

  • ctype<char>, явная специализация, различия которой описаны отдельно.ctype<char>, an explicit specialization whose differences are described separately. Дополнительные сведения см. в статье < > класс CType char.For more information, see ctype<char> Class.

  • ctype<wchar_t>, который обрабатывает элементы как широкие символы.ctype<wchar_t>, which treats elements as wide characters.

Другие специализации шаблона класса ctype<CharType> :Other specializations of class template ctype<CharType>:

  • Преобразование значения CH типа CharType в значение типа char с выражением (char)ch .Convert a value ch of type CharType to a value of type char with the expression (char)ch.

  • Преобразование значения Byte типа char в значение типа CharType с помощью выражения CharType(byte) .Convert a value byte of type char to a value of type CharType with the expression CharType(byte).

Все остальные операции выполняются по char значениям так же, как и для явной специализации ctype<char> .All other operations are performed on char values in the same way as for the explicit specialization ctype<char>.

КонструкторыConstructors

КонструкторConstructor ОписаниеDescription
CTypectype Конструктор для объектов класса ctype, которые служат в качестве аспектов языкового стандарта для символов.Constructor for objects of class ctype that serve as locale facets for characters.

Определения типовTypedefs

Имя типаType name ОписаниеDescription
char_typechar_type Тип, который описывает символ, используемый языковым стандартом.A type that describes a character used by a locale.

Функции элементовMember functions

Функция-членMember function ОписаниеDescription
do_isdo_is Виртуальная функция, вызываемая для проверки того, есть ли у отдельного символа определенный атрибут, или для классификации атрибутов каждого символа в диапазоне и сохранения их в массиве.A virtual function called to test whether a single character has a particular attribute, or classify the attributes of each character in a range and stores them in an array.
do_narrowdo_narrow Виртуальная функция, вызываемая для преобразования символа типа CharType , используемого локальным языком, в соответствующий символ типа char в собственной кодировке.A virtual function called to convert a character of type CharType used by a locale to the corresponding character of type char in the native character set.
do_scan_isdo_scan_is Виртуальная функция, вызываемая для обнаружения первого символа, соответствующего указанной маске, в диапазоне.A virtual function called to locate the first character in a range that matches a specified mask.
do_scan_notdo_scan_not Виртуальная функция, вызываемая для обнаружения первого символа, не соответствующего указанной маске, в диапазоне.A virtual function called to locate the first character in a range that does not match a specified mask.
do_tolowerdo_tolower Виртуальная функция, вызываемая для преобразования символа или диапазона символов в нижний регистр.A virtual function called to convert a character or a range of characters to their lower case.
do_toupperdo_toupper Виртуальная функция, вызываемая для преобразования символа или диапазона символов в верхний регистр.A virtual function called to convert a character or a range of characters to upper case.
do_widendo_widen Виртуальная функция, вызываемая для преобразования символа типа char в собственной кодировке в соответствующий символ типа CharType , используемый языковым стандартом.A virtual function called to converts a character of type char in the native character set to the corresponding character of type CharType used by a locale.
isis Проверяет, есть ли у отдельного символа определенный атрибут, или классифицирует атрибуты каждого символа в диапазоне и сохраняет их в массиве.Tests whether a single character has a particular attribute, or classifies the attributes of each character in a range and stores them in an array.
narrownarrow Преобразовывает символ типа CharType, используемый языковым стандартом, в соответствующий символ типа char в исходной кодировке.Converts a character of type CharType used by a locale to the corresponding character of type char in the native character set.
scan_isscan_is Обнаруживает первый символ, соответствующий указанной маске, в диапазоне.Locates the first character in a range that matches a specified mask.
scan_notscan_not Обнаруживает первый символ, несоответствующий указанной маске, в диапазоне.Locates the first character in a range that does not match a specified mask.
ToLowertolower Преобразует символ или диапазон символов в нижний регистр.Converts a character or a range of characters to lower case.
ToUppertoupper Преобразует символ или диапазон символов в верхний регистр.Converts a character or a range of characters to upper case.
widenwiden Преобразует символ типа char в собственной кодировке в соответствующий символ типа CharType , используемый языковым стандартом.Converts a character of type char in the native character set to the corresponding character of type CharType used by a locale.

ТребованияRequirements

Заголовок:<locale>Header: <locale>

Пространство имен: stdNamespace: std

CType:: char_typectype::char_type

Тип, который описывает символ, используемый языковым стандартом.A type that describes a character used by a locale.

typedef CharType char_type;

КомментарииRemarks

Тип является синонимом для параметра-шаблона Chartype.The type is a synonym for the template parameter CharType.

ПримерExample

Пример, в котором char_type используется в качестве возвращаемого значения, см. в описании функции-члена widen.See the member function widen for an example that uses char_type as a return value.

CType:: CTypectype::ctype

Конструктор для объектов класса ctype, которые служат в качестве аспектов языкового стандарта для символов.Constructor for objects of class ctype that serve as locale facets for characters.

explicit ctype(size_t _Refs = 0);

ПараметрыParameters

_Refs_Refs
Целочисленное значение, используемое для указания типа управления памятью для объекта.Integer value used to specify the type of memory management for the object.

КомментарииRemarks

Возможные значения параметра _Refs и их значимость:The possible values for the _Refs parameter and their significance are:

  • 0: время существования объекта управляется языковыми стандартами, которые его содержат.0: The lifetime of the object is managed by the locales that contain it.

  • 1: время существования объекта должно управляться вручную.1: The lifetime of the object must be manually managed.

  • > 1: эти значения не определены.> 1: These values are not defined.

Прямые примеры привести нельзя, так как деструктор защищен.No direct examples are possible, because the destructor is protected.

Конструктор инициализирует свой базовый объект locale::facet с locale::facet(_Refs).The constructor initializes its locale::facet base object with locale::facet( _Refs).

CType::d o_isctype::do_is

Виртуальная функция, вызываемая для проверки того, есть ли у отдельного символа определенный атрибут, или для классификации атрибутов каждого символа в диапазоне и сохранения их в массиве.A virtual function called to test whether a single character has a particular attribute, or classify the attributes of each character in a range and stores them in an array.

virtual bool do_is(
    mask maskVal,
    CharType ch) const;

virtual const CharType *do_is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

ПараметрыParameters

масквалmaskVal
Значение маски, для которого должен тестироваться символ.The mask value for which the character is to be tested.

каналch
Символ, атрибуты которого должны тестироваться.The character whose attributes are to be tested.

начальfirst
Указатель на первый символ в диапазоне, атрибуты которого должны классифицироваться.A pointer to the first character in the range whose attributes are to be classified.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, атрибуты которого должны классифицироваться.A pointer to the character immediately following the last character in the range whose attributes are to be classified.

destdest
Указатель на начало массива, где должны храниться значения маски, характеризующие атрибуты каждого из символов.A pointer to the beginning of the array where the mask values characterizing the attributes of each of the characters are to be stored.

Возвращаемое значениеReturn Value

Первая функция-член возвращает логическое значение, равное, true Если проверяемый символ имеет атрибут, описанный в значении маски. значение, false если не удается получить атрибут.The first member function returns a Boolean value that is true if the character tested has the attribute described by the mask value; false if it fails to have the attribute.

Вторая функция-член возвращает массив, содержащий значения маски, характеризующие атрибуты каждого символа в диапазоне.The second member function returns an array containing the mask values characterizing the attributes of each of the characters in the range.

КомментарииRemarks

Значения маски, классифицирующие атрибуты символов, предоставляются классом ctype_base, от которого производится класс ctype.The mask values classifying the attributes of the characters are provided by the class ctype_base, from which ctype derives. Первая функция-член может принимать для своего первого параметра выражения, которые называются битовыми масками и формируются из сочетания значений маски логическими побитовыми операторами (|, &, ^, ~).The first member function can accept expressions for its first parameter referred to as bitmasks and formed from the combination of mask values by the logical bitwise operators (| , & , ^ , ~).

ПримерExample

См. пример для is, в котором вызывается do_is.See the example for is, which calls do_is.

CType::d o_narrowctype::do_narrow

Виртуальная функция, вызываемая для преобразования символа типа CharType , используемого локальным языком, в соответствующий символ типа char в собственной кодировке.A virtual function called to convert a character of type CharType used by a locale to the corresponding character of type char in the native character set.

virtual char do_narrow(
    CharType ch,
    char default = '\0') const;

virtual const CharType* do_narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

ПараметрыParameters

каналch
Символ типа Chartype, используемого языковым стандартом, который требуется преобразовать.The character of type Chartype used by the locale to be converted.

параметрыdefault
Значение по умолчанию, присваиваемое функцией члена символам типа CharType , у которых нет аналоговых символов типа char .The default value to be assigned by the member function to characters of type CharType that do not have counterpart characters of type char.

начальfirst
Указатель на первый символ в диапазоне символов для преобразования.A pointer to the first character in the range of characters to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в преобразуемом диапазоне символов.A pointer to the character immediately following the last character in the range of characters to be converted.

destdest
Указатель const на первый символ типа char в диапазоне назначения, в котором хранится преобразованный диапазон символов.A const pointer to the first character of type char in the destination range that stores the converted range of characters.

Возвращаемое значениеReturn Value

Первая Защищенная функция-член возвращает собственный символ типа char, соответствующий символу параметра типа CharType или Default , если не определен аналог.The first protected member function returns the native character of type char that corresponds to the parameter character of type CharType or default if no counterpart is defined.

Вторая защищенная функция-член возвращает указатель на целевой диапазон собственных символов, преобразованных из символов типа CharType.The second protected member function returns a pointer to the destination range of native characters converted from characters of type CharType.

КомментарииRemarks

Вторая Защищенная функция шаблона элемента сохраняет в dest [ I ] значение do_narrow ( first [ I ], default ) для I в интервале [0, last - first ).The second protected member template function stores in dest[ I] the value do_narrow( first [ I], default), for I in the interval [0, last - first).

ПримерExample

См. пример для narrow, в котором вызывается do_narrow.See the example for narrow, which calls do_narrow.

CType::d o_scan_isctype::do_scan_is

Виртуальная функция, вызываемая для обнаружения первого символа, соответствующего указанной маске, в диапазоне.A virtual function called to locate the first character in a range that matches a specified mask.

virtual const CharType *do_scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

ПараметрыParameters

масквалmaskVal
Значение маски для сопоставления с символом.The mask value to be matched by a character.

начальfirst
Указатель на первый символ в просматриваемом диапазоне символов.A pointer to the first character in the range to be scanned.

Последняяlast
Указатель на символ, следующий сразу за последним символом в просматриваемом диапазоне.A pointer to the character immediately following the last character in the range to be scanned.

Возвращаемое значениеReturn Value

Указатель на первый символ в диапазоне, соответствующий указанной маске.A pointer to the first character in a range that does match a specified mask. Если такого значения не существует, функция возвращает Last.If no such value exists, the function returns last.

КомментарииRemarks

Защищенная функция-член возвращает наименьший указатель ptr в диапазоне [ first , last ), для которого do_is( maskVal , * ptr ) имеет значение true.The protected member function returns the smallest pointer ptr in the range [ first, last) for which do_is( maskVal, * ptr) is true.

ПримерExample

См. пример для scan_is, в котором вызывается do_scan_is.See the example for scan_is, which calls do_scan_is.

CType::d o_scan_notctype::do_scan_not

Виртуальная функция, вызываемая для обнаружения первого символа, не соответствующего указанной маске, в диапазоне.A virtual function called to locate the first character in a range that does not match a specified mask.

virtual const CharType *do_scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

ПараметрыParameters

масквалmaskVal
Значение маски, которому не должен соответствовать символ.The mask value not to be matched by a character.

начальfirst
Указатель на первый символ в просматриваемом диапазоне символов.A pointer to the first character in the range to be scanned.

Последняяlast
Указатель на символ, следующий сразу за последним символом в просматриваемом диапазоне.A pointer to the character immediately following the last character in the range to be scanned.

Возвращаемое значениеReturn Value

Указатель на первый символ в диапазоне, не соответствующий указанной маске.A pointer to the first character in a range that doesn't match a specified mask. Если такого значения не существует, функция возвращает Last.If no such value exists, the function returns last.

КомментарииRemarks

Защищенная функция-член возвращает наименьший указатель ptr в диапазоне [ first , last ), для которого do_is( maskVal , * ptr ) имеет значение false.The protected member function returns the smallest pointer ptr in the range [ first, last) for which do_is( maskVal, * ptr) is false.

ПримерExample

См. пример для scan_not, в котором вызывается do_scan_not.See the example for scan_not, which calls do_scan_not.

CType::d o_tolowerctype::do_tolower

Виртуальная функция, вызываемая для преобразования символа или диапазона символов в нижний регистр.A virtual function called to convert a character or a range of characters to lower case.

virtual CharType do_tolower(CharType ch) const;

virtual const CharType *do_tolower(
    CharType* first,
    const CharType* last) const;

ПараметрыParameters

каналch
Символ для преобразования в нижний регистр.The character to be converted to lower case.

начальfirst
Указатель на первый символ в диапазоне символов, регистр которых нужно преобразовать.A pointer to the first character in the range of characters whose cases are to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, регистр символов которого нужно преобразовать.A pointer to the character immediately following the last character in the range of characters whose cases are to be converted.

Возвращаемое значениеReturn Value

Первая Защищенная функция Member возвращает строчную форму параметра CH.The first protected member function returns the lowercase form of the parameter ch. Если форма нижнего регистра не существует, она возвращает CH.If no lowercase form exists, it returns ch. Вторая Защищенная функция Member возвращает Last.The second protected member function returns last.

КомментарииRemarks

Вторая Защищенная функция-шаблон элемента заменяет каждый элемент first [ I ] для I в интервале [0, last - first ) на do_tolower ( first [ I ]).The second protected member template function replaces each element first [ I], for I in the interval [0, last - first), with do_tolower( first [ I]).

ПримерExample

См. пример для tolower, в котором вызывается do_tolower.See the example for tolower, which calls do_tolower.

CType::d o_toupperctype::do_toupper

Виртуальная функция, вызываемая для преобразования символа или диапазона символов в верхний регистр.A virtual function called to convert a character or a range of characters to upper case.

virtual CharType do_toupper(CharType ch) const;

virtual const CharType *do_toupper(
    CharType* first,
    const CharType* last) const;

ПараметрыParameters

каналch
Символ для преобразования в верхний регистр.The character to be converted to upper case.

начальfirst
Указатель на первый символ в диапазоне символов, регистр которых нужно преобразовать.A pointer to the first character in the range of characters whose cases are to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, регистр символов которого нужно преобразовать.A pointer to character immediately following the last character in the range of characters whose cases are to be converted.

Возвращаемое значениеReturn Value

Первая Защищенная функция Member возвращает прописную форму параметра CH.The first protected member function returns the uppercase form of the parameter ch. Если форма в верхнем регистре не существует, она возвращает CH.If no uppercase form exists, it returns ch. Вторая Защищенная функция Member возвращает Last.The second protected member function returns last.

КомментарииRemarks

Вторая Защищенная функция-шаблон элемента заменяет каждый элемент first [ I ] для I в интервале [0, last - first ) на do_toupper ( first [ I ]).The second protected member template function replaces each element first [ I], for I in the interval [0, last - first), with do_toupper( first [ I]).

ПримерExample

См. пример для toupper, в котором вызывается do_toupper.See the example for toupper, which calls do_toupper.

CType::d o_widenctype::do_widen

Виртуальная функция, вызываемая для преобразования символа типа char в собственной кодировке в соответствующий символ типа CharType , используемый языковым стандартом.A virtual function called to converts a character of type char in the native character set to the corresponding character of type CharType used by a locale.

virtual CharType do_widen(char byte) const;

virtual const char *do_widen(
    const char* first,
    const char* last,
    CharType* dest) const;

ПараметрыParameters

двухбайтовыхbyte
Символ типа char в собственной кодировке для преобразования.The character of type char in the native character set to be converted.

начальfirst
Указатель на первый символ в диапазоне символов для преобразования.A pointer to the first character in the range of characters to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в преобразуемом диапазоне символов.A pointer to the character immediately following the last character in the range of characters to be converted.

destdest
Указатель на первый символ типа CharType в целевом диапазоне, который хранит преобразуемый диапазон символов.A pointer to the first character of type CharType in the destination range that stores the converted range of characters.

Возвращаемое значениеReturn Value

Первая Защищенная функция Member возвращает символ типа CharType , соответствующий символу параметра собственного типа char .The first protected member function returns the character of type CharType that corresponds to the parameter character of native type char.

Вторая Защищенная функция-член возвращает указатель на целевой диапазон символов типа CharType , используемого языковым стандартом, преобразованных из машинных символов типа char .The second protected member function returns a pointer to the destination range of characters of type CharType used by a locale converted from native characters of type char.

КомментарииRemarks

Вторая защищенная функция-член шаблона сохраняет в dest[I] значение do_widen(first[I]) для I в диапазоне [0, last - first).The second protected member template function stores in dest[ I] the value do_widen( first[ I]), for I in the interval [0, last - first).

ПримерExample

См. пример для widen, в котором вызывается do_widen.See the example for widen, which calls do_widen.

CType:: являетсяctype::is

Проверяет, есть ли у отдельного символа определенный атрибут, или классифицирует атрибуты каждого символа в диапазоне и сохраняет их в массиве.Tests whether a single character has a particular attribute or classifies the attributes of each character in a range and stores them in an array.

bool is(mask maskVal, CharType ch) const;

const CharType *is(
    const CharType* first,
    const CharType* last,
    mask* dest) const;

ПараметрыParameters

масквалmaskVal
Значение маски, для которого должен тестироваться символ.The mask value for which the character is to be tested.

каналch
Символ, атрибуты которого должны тестироваться.The character whose attributes are to be tested.

начальfirst
Указатель на первый символ в диапазоне, атрибуты которого должны классифицироваться.A pointer to the first character in the range whose attributes are to be classified.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, атрибуты которого должны классифицироваться.A pointer to the character immediately following the last character in the range whose attributes are to be classified.

destdest
Указатель на начало массива, где должны храниться значения маски, характеризующие атрибуты каждого из символов.A pointer to the beginning of the array where the mask values characterizing the attributes of each of the characters are to be stored.

Возвращаемое значениеReturn Value

Первая функция – член возвращает, true Если проверяемый символ имеет атрибут, описанный в значении маски. значение, false если не удается получить атрибут.The first member function returns true if the character tested has the attribute described by the mask value; false if it fails to have the attribute.

Вторая функция-член возвращает указатель на последний символ в диапазоне, атрибуты которого должны классифицироваться.The second member function returns a pointer to the last character in the range whose attributes are to be classified.

КомментарииRemarks

Значения маски, классифицирующие атрибуты символов, предоставляются классом ctype_base, от которого производится класс ctype.The mask values classifying the attributes of the characters are provided by the class ctype_base Class, from which ctype derives. Первая функция-член может принимать для своего первого параметра выражения, которые называются битовыми масками и формируются из сочетания значений маски логическими побитовыми операторами (|, &, ^, ~).The first member function can accept expressions for its first parameter referred to as bitmasks and formed from the combination of mask values by the logical bitwise operators (| , & , ^ , ~).

ПримерExample

// ctype_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main() {
   locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );

   if (use_facet<ctype<char> > ( loc1 ).is( ctype_base::alpha, 'a' ))
      cout << "The character 'a' in locale loc1 is alphabetic."
           << endl;
   else
      cout << "The character 'a' in locale loc1 is not alphabetic."
           << endl;

   if (use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!' ))
      cout << "The character '!' in locale loc2 is alphabetic."
           << endl;
   else
      cout << "The character '!' in locale loc2 is not alphabetic."
           << endl;

   char *string = "Hello, my name is John!";
   ctype<char>::mask maskarray[30];
   use_facet<ctype<char> > ( loc2 ).is(
      string, string + strlen(string), maskarray );
   for (unsigned int i = 0; i < strlen(string); i++) {
      cout << string[i] << ": "
           << (maskarray[i] & ctype_base::alpha  "alpha"
                                                : "not alpha")
           << endl;;
   };
}

CType:: Narrowctype::narrow

Преобразует символы типа CharType , используемые локальными языками, в соответствующие символы типа char в собственной кодировке.Converts characters of type CharType used by a locale to the corresponding characters of type char in the native character set.

char narrow(CharType ch, char default = '\0') const;

const CharType* narrow(
    const CharType* first,
    const CharType* last,
    char default,
    char* dest) const;

ПараметрыParameters

каналch
Символ типа Chartype, используемого языковым стандартом, который требуется преобразовать.The character of type Chartype used by the locale to be converted.

параметрыdefault
Значение по умолчанию, присваиваемое функцией члена символам типа CharType , у которых нет аналоговых символов типа char .The default value to be assigned by the member function to characters of type CharType that do not have counterpart characters of type char.

начальfirst
Указатель на первый символ в диапазоне символов для преобразования.A pointer to the first character in the range of characters to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в преобразуемом диапазоне символов.A pointer to the character immediately following the last character in the range of characters to be converted.

destdest
Указатель const на первый символ типа char в диапазоне назначения, в котором хранится преобразованный диапазон символов.A const pointer to the first character of type char in the destination range that stores the converted range of characters.

Возвращаемое значениеReturn Value

Первая функция-член возвращает собственный символ типа char , соответствующий символу параметра типа, CharType default Если определено не аналог.The first member function returns the native character of type char that corresponds to the parameter character of type CharType default if not counterpart is defined.

Вторая функция-член возвращает указатель на целевой диапазон собственных символов, преобразованных из символов типа CharType.The second member function returns a pointer to the destination range of native characters converted from characters of type CharType.

КомментарииRemarks

Первая функция-член возвращает do_narrow( ch , default ).The first member function returns do_narrow(ch, default). Вторая функция-член возвращает do_narrow ( first , last , default , dest ).The second member function returns do_narrow (first, last, default, dest). Только основные исходные символы всегда имеют уникальный прообраз CharType в narrow.Only the basic source characters are guaranteed to have a unique inverse image CharType under narrow. Для этих базовых исходных символов хранится следующий инвариант: narrow (widen (c), 0) == c.For these basic source characters, the following invariant holds: narrow ( widen ( c ), 0 ) == c.

ПримерExample

// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "english" );
   wchar_t *str1 = L"\x0392fhello everyone";
   char str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
      ( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0);  // C4996
   str2[wcslen(str1)] = '\0';
   wcout << str1 << endl;
   cout << &str2[0] << endl;
}
Xhello everyone

CType:: scan_isctype::scan_is

Обнаруживает первый символ, соответствующий указанной маске, в диапазоне.Locates the first character in a range that matches a specified mask.

const CharType *scan_is(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

ПараметрыParameters

масквалmaskVal
Значение маски для сопоставления с символом.The mask value to be matched by a character.

начальfirst
Указатель на первый символ в просматриваемом диапазоне символов.A pointer to the first character in the range to be scanned.

Последняяlast
Указатель на символ, следующий сразу за последним символом в просматриваемом диапазоне.A pointer to the character immediately following the last character in the range to be scanned.

Возвращаемое значениеReturn Value

Указатель на первый символ в диапазоне, соответствующий указанной маске.A pointer to the first character in a range that does match a specified mask. Если такого значения не существует, функция возвращает Last.If no such value exists, the function returns last.

КомментарииRemarks

Функция-член возвращает do_scan_is( maskVal , first , last ).The member function returns do_scan_is(maskVal, first, last).

ПримерExample

// ctype_scan_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_is
      ( ctype_base::punct, string, string + strlen(string) );
   cout << "The first punctuation is \"" << *i << "\" at position: "
      << i - string << endl;
}
The first punctuation is "," at position: 5

CType:: scan_notctype::scan_not

Обнаруживает первый символ, несоответствующий указанной маске, в диапазоне.Locates the first character in a range that does not match a specified mask.

const CharType *scan_not(
    mask maskVal,
    const CharType* first,
    const CharType* last) const;

ПараметрыParameters

масквалmaskVal
Значение маски, которому не должен соответствовать символ.The mask value not to be matched by a character.

начальfirst
Указатель на первый символ в просматриваемом диапазоне символов.A pointer to the first character in the range to be scanned.

Последняяlast
Указатель на символ, следующий сразу за последним символом в просматриваемом диапазоне.A pointer to the character immediately following the last character in the range to be scanned.

Возвращаемое значениеReturn Value

Указатель на первый символ в диапазоне, не соответствующий указанной маске.A pointer to the first character in a range that does not match a specified mask. Если такого значения не существует, функция возвращает Last.If no such value exists, the function returns last.

КомментарииRemarks

Функция-член возвращает do_scan_not( maskVal , first , last ).The member function returns do_scan_not(maskVal, first, last).

ПримерExample

// ctype_scan_not.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char *string = "Hello, my name is John!";

   const char* i = use_facet<ctype<char> > ( loc1 ).scan_not
      ( ctype_base::alpha, string, string + strlen(string) );
   cout << "First nonalpha character is \"" << *i << "\" at position: "
      << i - string << endl;
}
First nonalpha character is "," at position: 5

CType:: ToLowerctype::tolower

Преобразует символ или диапазон символов в нижний регистр.Converts a character or a range of characters to lower case.

CharType tolower(CharType ch) const;

const CharType *tolower(CharType* first, const CharType* last) const;

ПараметрыParameters

каналch
Символ для преобразования в нижний регистр.The character to be converted to lower case.

начальfirst
Указатель на первый символ в диапазоне символов, регистр которых нужно преобразовать.A pointer to the first character in the range of characters whose cases are to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, регистр символов которого нужно преобразовать.A pointer to the character immediately following the last character in the range of characters whose cases are to be converted.

Возвращаемое значениеReturn Value

Первая функция – член возвращает строчную форму параметра CH.The first member function returns the lowercase form of the parameter ch. Если форма нижнего регистра не существует, она возвращает CH.If no lowercase form exists, it returns ch.

Вторая функция – член возвращает Last.The second member function returns last.

КомментарииRemarks

Первая функция-член возвращает do_tolower( ch ).The first member function returns do_tolower(ch). Вторая функция-член возвращает do_tolower( first , last ).The second member function returns do_tolower(first, last).

ПримерExample

// ctype_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "HELLO, MY NAME IS JOHN";

   use_facet<ctype<char> > ( loc1 ).tolower
      ( string, string + strlen(string) );
   cout << "The lowercase string is: " << string << endl;
}
The lowercase string is: hello, my name is john

CType:: ToUpperctype::toupper

Преобразует символ или диапазон символов в верхний регистр.Converts a character or a range of characters to upper case.

CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;

ПараметрыParameters

каналch
Символ для преобразования в верхний регистр.The character to be converted to uppercase.

начальfirst
Указатель на первый символ в диапазоне символов, регистр которых нужно преобразовать.A pointer to the first character in the range of characters whose cases are to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в диапазоне, регистр символов которого нужно преобразовать.A pointer to the character immediately following the last character in the range of characters whose cases are to be converted.

Возвращаемое значениеReturn Value

Первая функция – член возвращает прописную форму параметра CH.The first member function returns the uppercase form of the parameter ch. Если форма в верхнем регистре не существует, она возвращает CH.If no uppercase form exists, it returns ch.

Вторая функция – член возвращает Last.The second member function returns last.

КомментарииRemarks

Первая функция-член возвращает do_toupper( ch ).The first member function returns do_toupper(ch). Вторая функция-член возвращает do_toupper( first , last ).The second member function returns do_toupper( first, last).

ПримерExample

// ctype_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" );

   char string[] = "Hello, my name is John";

   use_facet<ctype<char> > ( loc1 ).toupper
      ( string, string + strlen(string) );
   cout << "The uppercase string is: " << string << endl;
}
The uppercase string is: HELLO, MY NAME IS JOHN

CType:: Wideningctype::widen

Преобразует символ типа char в собственной кодировке в соответствующий символ типа CharType , используемый языковым стандартом.Converts a character of type char in the native character set to the corresponding character of type CharType used by a locale.

CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;

ПараметрыParameters

двухбайтовыхbyte
Символ типа char в исходной кодировке для преобразования.The character of type char in the native character set to be converted.

начальfirst
Указатель на первый символ в диапазоне символов для преобразования.A pointer to the first character in the range of characters to be converted.

Последняяlast
Указатель на символ, следующий сразу за последним символом в преобразуемом диапазоне символов.A pointer to the character immediately following the last character in the range of characters to be converted.

destdest
Указатель на первый символ типа CharType в целевом диапазоне, который хранит преобразуемый диапазон символов.A pointer to the first character of type CharType in the destination range that stores the converted range of characters.

Возвращаемое значениеReturn Value

Первая функция – член возвращает символ типа CharType , соответствующий символу параметра собственного типа char .The first member function returns the character of type CharType that corresponds to the parameter character of native type char.

Вторая функция-член возвращает указатель на целевой диапазон символов типа CharType , используемого языковым стандартом, преобразованных из машинных символов типа char .The second member function returns a pointer to the destination range of characters of type CharType used by a locale converted from native characters of type char.

КомментарииRemarks

Первая функция-член возвращает do_widen( byte ).The first member function returns do_widen(byte). Вторая функция-член возвращает do_widen( first , last , dest ).The second member function returns do_widen(first, last, dest).

ПримерExample

// ctype_widen.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "English" );
   char *str1 = "Hello everyone!";
   wchar_t str2 [16];
   bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).widen
      ( str1, str1 + strlen(str1), &str2[0] ) != 0);  // C4996
   str2[strlen(str1)] = '\0';
   cout << str1 << endl;
   wcout << &str2[0] << endl;

   ctype<wchar_t>::char_type charT;
   charT = use_facet<ctype<char> > ( loc1 ).widen( 'a' );
}
Hello everyone!
Hello everyone!

См. также разделSee also

<locale>
Безопасность потоков в стандартной библиотеке C++Thread Safety in the C++ Standard Library