Системное программирование в UNIX средствами Free Pascal


. Проверка и преобразование символов


В ОС UNIX существуют два полезных набора макросов и функций для работы с символами, которые определены в файле stdio. Первый набор, называемый семейством сtype, предназначен для проверки одиночных символов. Эти макросы-предикаты возвращают true (истинно), если условие выполняется, и false (ложно) – в противном случае. Например, макрос isalpha проверяет, является ли символ буквой, то есть, лежит ли он в диапазонах a-z или A-Z:

uses stdio;

var

  c:integer;

.

.

.

(* Макрос 'isalpha' из набора ctype *)

if isalpha (с) then

begin

  (* Обрабатываем букву *)

end

else

  warn('Символ не является буквой');

Обратите внимание на то, что аргумент с имеет тип integer. Ниже следует полный список макросов ctype:

isalpha(с)

Является ли с буквой?

isupper(с)

Является ли с прописной буквой?

islower(с)

Является ли с строчной буквой?

isdigit(с)

Является ли с цифрой (0–9)?

isxdigit(c)

Является ли с шестнадцатеричной цифрой?

isalnum(c)

Является ли с буквой или цифрой?

isspace(с)

Является ли с пробельным символом; то есть одним из символов: пробел, табуляция, возврат каретки, перевод строки, перевод страницы или вертикальная табуляция?

ispunct(c)

Является ли с знаком препинания?

isprint(с)

Является ли с печатаемым знаком? Для набора символов ASCII это означает любой символ в диапазоне от пробела (040) до тильды (~ или 0176)

isgraph(с)

Является ли с печатаемым знаком, но не пробелом?

iscntrl(с)

Является ли с управляющим символом? В качестве управляющего символа рассматривается символ удаления

ASCII и все символы со значением меньше 040

isascii(с)

Является ли с символом ASCII? Обратите внимание, что для любого целочисленного значения, кроме значения символа EOF, определенного в файле <stdio.h>, которое передается другим процедурам семейства ctype, это условие должно выполняться. (Включение символа EOF позволяет использовать макрокоманды из семейства ctype в процедурах типа getc)

<


- Начало -  - Назад -  - Вперед -



Книжный магазин