Функции обработки двубайтовых символов

В 1995 году к стандарту С89 был добавлен ряд функций, предназначенных для обработки двубайтовых символов (wide-character functions), которые позже вошли в стандарт С99 и язык C++. Эти функции работают с символами типа wchar_t, которые занимают 16 бит. В основном, они аналогичны своим char-эквивалентам. Например, функция iswspace() является двубайтовой версией функции isspace(). В целом, функции обработки двубайтовых символов используют те же имена, что и их char-эквиваленты, но добавляется буква "w" (wide-character, т.е. "широкоформатный" символ).

В языке С функции широкоформатных символов используют заголовки <wchar.h> и <wctype.h>, а в языке C++ - заголовки <cwchar> и <cwctype>. В этой главе будут использованы имена С-заголовков, но ссылки на <wchar.h> и <wctype. h> применимы также к заголовкам <cwchar> и <cwctype> соответственно.

Заголовок <wctype.h> определяет типы wint_t, wctrans_t и wctype_t. Многие функции двубайтовых символов принимают в качестве параметра символ широкого формата. Этот параметр имеет тип wint_t, который позволяет содержать символ такого увеличенного формата. Использование типа wint_t в функциях двубайтовых символов, аналогично использованию типа int в char-ориентированных функциях. Типы wctrans_t и wctype_t - это типы объектов, используемые для преобразования символов и определения категории символа соответственно. Кроме того, в заголовке <wctype.h> определен двубайтовый признак конца файла (EOF) под именем WEOF.

Помимо win_t, в заголовке <wchar.h> определены такие типы, как wchar_t, size_t и mbstate_t. Тип wchar_t создает объект двубайтового символа, a size_t - это тип значения, возвращаемого оператором sizeof. Тип mbstate_t описывает объект, который хранит состояние преобразования многобайтового объекта в символ широкого формата. Заголовок <wchar.h> также определяет макросы NULL, WEOF, WCHAR_MAX и WCHAR_MIN. Последние два макроса определяют максимальное и минимальное значения, которые могут храниться в объекте типа wchar_t.

Поскольку большинство функций двубайтовых символов аналогичны своим char-эквивалентам, в этой главе приводится лишь краткое их описание.


Смотрите также

Функции классификации двубайтовых символов
Функции ввода вывода двубайтовых символов
Строковые функции двубайтовых символов
Преобразование строк двубайтовых символов
Работа с массивами двубайтовых символов
Преобразование объектов в двубайтовые символы

Сколько стоит эпиляция
Радикальное удаление волос навсегда! Все виды эпиляции
aeternamed.ru