Строки символов Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.
Код ASCII (American Code for Information Interchange) 32 пробел48 P96 `112 p 33 ! A81 Q97 a113 q 34 " B82 R98 b114 r 35 # C83 S99 c115 s 36 $ D84 T100 d116 t 37 % E85 U101 e117 u 38 & F86 V102 f118 v G87 W103 g119 w 40 ( H88 X104 h120 x 41 ) I89 Y105 i121 y 42 *58 :74 J90 Z106 j122 z ;75 K91 [107 k123 { 44,60 78 N94 ^110 n126 ~ 47 /63 ?79 O95 _111 o127
В Паскале строки это упакованные массивы символов; следовательно, они имеют фиксированную длину для работы со строками используется встроенный тип string, поддерживающий операции конкатенации (+) и сравнения (> >=
Описание строковой переменной Паскаля Для описания строковых переменных в Паскале существует предопределенный тип string. Var : string[ ] Например: Var s1: string[10]; s2: string[20]; smax: string; строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..
Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер. Например, St[7] позволяет обратиться к седьмому символу в строке St при этом мы можем поменять это значение, выполнив оператор присваивания St[7]:= е Строка принимает вид мама мела i StnМАМА МЫЛА присвоить его другой переменной Q:=St; можем вывести на экран это значение Write (St); Ввести с клавиатуры или задать в программе Read (st); Tmp:=Informatica;
Действия со строками в Паскале Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». W:=Q+st; Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (), больше (>), меньше ( =), меньше или равно (
Функция Length (s) возвращает длину (тип integer) строки символов s. Функция Copy (s,p,n) возвращает подстроку длины n из строки символов s, начиная с символа, находящегося на позиции с номером р. Функция Concat (s1, s2,..., sn) возвращает строку символов, представляющую собой сцепление строк s1+s2... +sn. Функция Pos (sub, s) возвращает 0, если строка символов sub не является подстрокой строки s, или возвращает номер (тип integer) позиции, с которой начинается первое вхождение подстроки sub в строку s. Процедура Delete (s,p,n) удаляет л символов из строки символов s, начиная с символа, находящегося на позиции с номером р. Процедура Insert (sub, s, р) вставляет подстроку sub в строку символов S, начиная с символа, находящегося на позиции с номером р. Процедура Str (х, s) преобразует число х (целого или действительного типа) в строку символов, которая присваивается строке s. Процедура Val (s, х, cod) преобразует строку символов s в число, которое присваивается целой или действительной переменной х. Значение параметра cod равно 0, если преобразование выполнено успешно, иначе - номеру позиции, где обнаружен ошибочный символ. Строка символов s может содержать и ведущие пробелы.
Значение параметра s (или переменной х) Выражение Результат функции или окончательное значение параметров (в случае процедуры) 'Informatica'Length(s)11 'A sosit iarna!'Length(s)14 'Informatica'Copy(s,3,5)'forma' 'Tractor'Copy(s,3,5)'actor' 'Tractor'Concat(s,'ist')'Tractorist' 'Informatica'Pos('forma',s)3 'Informatica'Pos('Forma',s) 0 'Tractor'Delete(s,1,2)s < 'actor' 'Informatica'Delete(s,3,8)s
Program Str1; Var S : String; n:integer; Begin Writeln('Введите последовательность символов'); Readln(S); n:=Length(S); Writeln('Вы ввели строку из ',n, ' символов'); End.