Заголовок <wctype.h> содержит прототипы тех функций, которые позволяют классифицировать двухбайтовые символы. Эти функции распределяют по категориям двухбайтовые символы или преобразуют регистр буквенного символа, устанавливая строчное или прописное написание. В табл. 19.1 приведены списки этих функций, а также соответствующие им функции для работы с символами типа char, которые были описаны в главе 14.
Функция | Соотвествующая функция для типа char |
---|---|
| isalnum() |
| isalpha() |
| isblank() (Добавлена в С99) |
| iscntri() |
| isdigit() |
| isgraph() |
| islowert() |
| isprintt() |
| ispunct() |
| isspacet() |
| isupper() |
| isxdigit() |
| tolower() |
| toupper() |
Помимо функций, приведенных в табл. 19.1, в заголовке <wctype.h> определены следующие функции, которые предоставляют открытые средства классификации символов.
wctype_t wctype(const char *attr);
int iswctype(wint_t ch, wctype_t attr_ob);
Функция wctype() возвращает значение, которое можно передать функции iswctype() в качестве параметра attr_ob. Строка, адресуемая параметром attr, задает свойство, которое должен иметь символ. Это значение можно затем использовать для определения, является ли ch символом, который обладает этим свойством. Если является, то функция iswctype() возвращает ненулевое значение. В противном случае возвращается нуль. В любых условиях выполнения программы определены следующие строки свойств:
alnum digit print upper
alpha graph punct xdigit
cntrl lower space
В версии С99 также определена строка blank.
Следующий фрагмент демонстрирует использование функций — wctype() и iswctype():
wctype_t x;
x = wctype("space");
if(iswctype(L' ', x))
printf("Это пробел.\n");
Будет выведено
Это пробел
Кроме того, в заголовке <wctype.h> определены функции wctrans() и towctrans(). Их описания приведены ниже.
wctrans_t wctrans(const char *mapping);
wint_t towctrans(wint_t ch, wctrans_t mapping_ob);
Функция wctrans() возвращает значение, которое можно передать функции towctrans() в качестве параметра mapping_ob. Строка, адресуемая параметром mapping, определяет отображение одного символа на другой. Данная строка затем может быть использована функцией towctrans() для преобразования символа ch. Функция возвращает преобразованное значение. При всех условиях выполнения программы поддерживаются следующие строки преобразования.
tolower toupper
Следующая последовательность демонстрирует применение функций wctrans() и towctrans():
wctrans_t x;
x = wctrans("tolower");
wchar_t ch = towctrans(L'W', x);
printf("%c", (char) ch);
Выводит
w
на нижнем регистре.