Символы и строки (PascalABC.NET)
Pascal ABC.NET выбор школьника - Часть 3
Символы (char)
Данные символьного типа имеют тип char и занимают в памяти два байта. Используется кодировка стандарта Unicode. В тексте программы символьная константа (так называемый литерал) всегда заключается в одинарные кавычки.
1 var c1, p135, rz: char; // три переменные
2 var Символ1: char; // одна переменная
3 var s: sequence of char; // последовательность символов;
4 var ca: array[1..35] of char; // статический массив символов
5 var ar: array of char; // динамический массив символов
6 var m: array[,] of char; // матрица символов
7
8 var a: char := 'a'; // тип указан явно
9 var b:= 'b'; // автовыведение типа
10 var kt:= ('A', 'B', 'C'); // кортеж из трех символов
Перевод символа в его код и обратно
Символ в код
- Ord(c) – код символа c в Unicode (тип word длиной 2 байта);
- char.Code – то же, точечная нотация;
Код в символ
- Chr(код) – символ с указанным кодом Unicode;
- #код – символ с указанным кодом Unicode; принимает только
литерал;
Принадлежность символа к группе
Является ли символ буквой?
c.IsLetter
Расширение c.IsLetter возвращает True, если символ c принадлежит к группе букв и False в противном случае.
Является ли символ цифрой?
c.IsDigit
Расширение c.IsDigit возвращает True, если символ c принадлежит к группе цифр и False в противном случае.
Является ли символ пробельным?
Пробельные символы – термин, пришедший из типографской практики. Пробел – это пустое место, интервал между символами. Пробельными в типографском и издательском деле называют непечатаемые (и неотображаемые) символы. Символы с десятичными кодами 9..13 относятся к так называемым управляющим символам – раньше они управляли внешними устройствами, такими как механический принтер. Символ с кодом 32 – это пробел.
char.IsWhiteSpace(c)
Статический метод char.IsWhiteSpace(c) возвращает True, если символ c принадлежит к группе пробельных символов и False в противном случае.
Является ли символ знаком препинания?
char.IsPunctuation(c)
Статический метод char.IsPunctuation(c) возвращает True, если символ c принадлежит к группе знаков пунктуации (разделителям) и False в противном случае.
Принадлежит ли буква к верхнему регистру?
c.IsUpper
Расширение c.IsUpper возвращает True, если символ c принадлежит к буквенным символам верхнего регистра (прописным) и False в противном случае. Если символ не является буквой, всегда возвращается False.
Принадлежит ли буква к нижнему регистру?
c.IsLower
Расширение c.IsLower возвращает True, если символ c принадлежит к буквенным символам нижнего регистра (строчным) и False в противном случае. Если символ не является буквой, всегда возвращается False.
Принадлежит ли символ интервалу?
c in c1..c2
Конструкция c in c1..c2 вернет True, если символ c принадлежит группе символов от с1 до с2 включительно и False в противном случае.
Операции преобразования символов
Смена регистра буквенного символа
- c.ToUpper – расширение возвращает буквенный символ c, приведенный к верхнему регистру, если он принадлежит к нижнему регистру. В противном случае символ возвращается без изменения;
- UpCase(c) – функция, делающая то же самое;
- c.ToLower – расширение возвращает буквенный символ c, приведенный к нижнему регистру, если он принадлежит к верхнему регистру. В противном случае символ возвращается без изменения;
- LowCase(c) – функция, делающая то же самое
Преобразование цифрового символа в число
c.ToDigit
Расширение c.ToDigit возвращает буквенный символ c, преобразованный к изображаемому им целому неотрицательному однозначному числу типа integer. Если символ не является цифрой при выполнении программы будет выдано сообщение «Ошибка времени выполнения: not a Digit» и программа завершится аварийно.
Получение символа, соседнего с указанным
- c.Pred – расширение возвращает буквенный символ, код которого в кодовой таблице предшествует коду символа c;
- Pred(c) – функция, делающая то же самое;
- c.Succ – расширение возвращает буквенный символ, код которого следует за кодом символа c;
- Succ(c) – функция, делающая то же самое.
Смещение по символам кодовой таблицы
- Dec(c) – процедура, заменяющая значение переменной, содержащей символ c на символ, предшествующий ему. Ведь это обычная
операция декремента, только для символа;
- Dec(c, n) – процедура, заменяющая значение переменной c, содержащей символ c на символ, находящийся в кодовой таблице на n
позиций раньше. Тоже декремент;
- Inc(c) – процедура, заменяющая значение переменной, содержащей символ c на символ, следующий за ним. Это инкремент.
- Inc(c, n) – процедура, заменяющая значение переменной, содержащей символ c на символ, находящийся в кодовой таблице на n
позиций дальше. И это инкремент.