Составители:
Рубрика:
115
Ввод-вывод строковых данных
При вводе строк, как и символов, используется оператор
readln. Однако нажатие клавиши [Enter] не является значимым
символом. Клавиша [
Enter] формирует символ конца строки.
Пример. Организовать ввод ФИО студента.
Var
fam: string;
Begin
writeln(‘Введите фамилию и инициалы студента’);
readln(fam);
На клавиатуре строка набирается без апострофов, например:
Андреева С.В. [Enter]
Одновременно с вводом строки в нулевом байте ячейки для
переменной
fam устанавливается длина строки, равная 13 симво-
лам.
Вывод строк осуществляется с помощью операторов
writeln и
write. Например, оператор
writeln(‘|’, fam:20, ‘|’);
выведет на экран в правую часть поля из
20 позиций строку fam:
| Андреева С.В.|
Обработка строковых данных
К строкам применимы операции отношения и сцепления. К
любому символу строки можно обратиться как к элементу одно-
мерного массива, например запись
st[2] определяет второй сим-
вол в строке
st.
Операция отношения
Сравнение двух строк выполняется последовательно слева
направо с учетом кодировки символов, например
‘
Паскаль’> ‘ПАскаль’,
так как код символа ‘
а’ больше кода символа ‘А’.
Операция сцепления
Операция сцепления обозначается символом ‘+’ и служит для
объединения двух строк в одну. Например, в результате выполне-
ния операторов:
fam := ‘Андреева С.В.’;
pr := ‘ ’; {7 пробелов}
116
fam1 := fam + pr;
writeln(‘|’, fam1, ‘|’);
на экран выведется строка:
|Андреева С.В. |
Заметим, что строка вывода занимает поле в 20 позиций, а пере-
менная
fam располагается в левой части поля.
Если длина сцепленной строки превысит максимальную дли-
ну, заданную в описании, то «лишние» справа символы отбрасы-
ваются.
Стандартные функции и процедуры
Большинство действий над строками реализуется с помощью
стандартных функций и процедур.
length(st) – функция, возвращающая длину строки st из ну-
левого байта.
Пример. Определить длину строки fam = Андреева С.В.
length(fam) = 13 (символов).
copy(st, i, n) – функция копирования n символов в подстроку
из заданной строки
st, начиная с i-й позиции.
Пример.
К переменной fam добавить справа 7 пробелов,
скопированных из строки
pr, заданной константой в разделе
Const.
Const
pr := ‘ ’; {20 пробелов}
……………………
fam1 := fam + copy(pr, 1, 7);
writeln(‘|’, fam1, ‘|’);
В результате выполнения данных операторов на экран будет вы-
ведена строка:
|Андреева С.В. |
pos
(st1, st) – функция поиска подстроки st1 в заданной стро-
ке
st. Результатом выполнения поиска является номер позиции в
строке
st, с которой обнаружено первое вхождение подстроки st1.
Пример. В заданной строке st=‘abcd’ найти подстроку ‘bc’.
pos(‘bc’, st) = 2.
delete(st, i, n); – процедура удаления n символов из заданной
строки
st, начиная с i-й позиции.
Пример. Из заданной строки st=‘abcde’ удалить подстроку
‘
cd’.
Ввод-вывод строковых данных fam1 := fam + pr; При вводе строк, как и символов, используется оператор writeln(‘|’, fam1, ‘|’); readln. Однако нажатие клавиши [Enter] не является значимым на экран выведется строка: символом. Клавиша [Enter] формирует символ конца строки. |Андреева С.В. | Пример. Организовать ввод ФИО студента. Заметим, что строка вывода занимает поле в 20 позиций, а пере- менная fam располагается в левой части поля. Var Если длина сцепленной строки превысит максимальную дли- fam: string; ну, заданную в описании, то «лишние» справа символы отбрасы- Begin ваются. writeln(‘Введите фамилию и инициалы студента’); readln(fam); Стандартные функции и процедуры На клавиатуре строка набирается без апострофов, например: Большинство действий над строками реализуется с помощью Андреева С.В. [Enter] стандартных функций и процедур. Одновременно с вводом строки в нулевом байте ячейки для length(st) – функция, возвращающая длину строки st из ну- переменной fam устанавливается длина строки, равная 13 симво- левого байта. лам. Пример. Определить длину строки fam = Андреева С.В. Вывод строк осуществляется с помощью операторов writeln и length(fam) = 13 (символов). write. Например, оператор copy(st, i, n) – функция копирования n символов в подстроку writeln(‘|’, fam:20, ‘|’); из заданной строки st, начиная с i-й позиции. выведет на экран в правую часть поля из 20 позиций строку fam: Пример. К переменной fam добавить справа 7 пробелов, | Андреева С.В.| скопированных из строки pr, заданной константой в разделе Обработка строковых данных Const. К строкам применимы операции отношения и сцепления. К Const любому символу строки можно обратиться как к элементу одно- pr := ‘ ’; {20 пробелов} мерного массива, например запись st[2] определяет второй сим- …………………… вол в строке st. fam1 := fam + copy(pr, 1, 7); Операция отношения writeln(‘|’, fam1, ‘|’); В результате выполнения данных операторов на экран будет вы- Сравнение двух строк выполняется последовательно слева ведена строка: направо с учетом кодировки символов, например |Андреева С.В. | ‘Паскаль’> ‘ПАскаль’, pos(st1, st) – функция поиска подстроки st1 в заданной стро- так как код символа ‘а’ больше кода символа ‘А’. ке st. Результатом выполнения поиска является номер позиции в Операция сцепления строке st, с которой обнаружено первое вхождение подстроки st1. Операция сцепления обозначается символом ‘+’ и служит для Пример. В заданной строке st=‘abcd’ найти подстроку ‘bc’. объединения двух строк в одну. Например, в результате выполне- pos(‘bc’, st) = 2. ния операторов: delete(st, i, n); – процедура удаления n символов из заданной строки st, начиная с i-й позиции. fam := ‘Андреева С.В.’; Пример. Из заданной строки st=‘abcde’ удалить подстроку pr := ‘ ’; {7 пробелов} ‘cd’. 115 116
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »