Система программирования Турбо Паскаль. Воробьева А.П - 57 стр.

UptoLike

Составители: 

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