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

Содержание

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

В языке С функции, предназначенные для работы с двухбайтовыми символами, используют два заголовка: <wchar.h&gt; и <wctype.h>. В заголовке <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, т.е. тем самым функциям, которые часто используется большинством программистов, знакомых с языком С, то в этой главе приводится лишь краткое описание таких функций.


Содержание