Строки
– последовательность символов, к которой можно обращаться как к единому целому и к каждому элементу по отдельности. Строка
Количество элементов в строке 255 символов.
Формат описания строк type = string [max длина строки]; var : < имя типа>; или var : string [max длина строки]; Возможно: var : string ; {длина строки – 255 символов}
Примеры const s t1 = Дуся ; type s trok = string [ 80 ] ; var st2 : string [ 25 ] ; st3 : s trok ; st4 : string ; {длина строки = 255 символов} st5, st6 : string [ 217 ] ; Допустимы операции: st3[15] := * ; readln ( st2 ) ; writeln ( st1[4] + + s t1 ) ;
Строка из n символов ( string [ n ] ) з анимает в памяти n+1 байт. n байт служит для хранения символов строки, а ещё один байт (элемент с индексом 0 ) хранит значение текущей длины строки.
Строковые операции и выражения
1. Операция конкатенации (сцепления, слияния, объединения) st2 := Турбо; st3 := Паскаль; writeln( st2 + s t ); Пример + Турбо Паскаль 7.0 ?
2. Операции отношения writeln(Ваня < Вася ); Пример =, ,, >= True ?
Операция сравнения заключается в сравнении соответствующих символам кодов. Сравнение строк производится посимвольно слева направо. Значение кодов возрастает при изменении символов в алфавитном порядке. Код спец. знаков < кодов цифр < кодов прописных букв < кодов строчных букв.
Строковые процедуры и функции
Пример var s t : string [ 11 ] ; begin s t := информатика;
1. Функция, вычисляющая длину строки st. writeln(length ( st ) ); Пример length ( st ) ( ord ( st [ 0 ] )) 11 ?
2. Функция, копирующая из строки st n символов, начиная с i-того. writeln(copy ( st, 3, 5 ) ); Пример copy ( st, i, n ) форма ?
3. Функция, выполняющая сцепление строк. writeln(concat ( Э, В, М ) ); Пример concat ( st1, st2, st3,…,stn ) ЭВМ ?
4. Функция, обнаруживающая первое появление подстроки s в строке st. writeln(pos ( a, s t ) ); Пример pos ( s, st ) 7 ? Результат – номер позиции строки s t, с которой строки совпали. Если s в st нет, то результат = 0.
delete ( st, 1, 6 ); writeln( st ); Пример delete ( st, i, n ); атика ? 5. Процедура, удаляющая из строки st n символов, начиная с i-того.
6. Процедура, вставляющая подстроку s в строку st, начиная с позиции i. insert (матем, st, 1 ); writeln( st ); Пример insert ( s, st, i ) ; математика ?
7. Процедура, преобразующая числовое значение x в строку st. str ( -125, st ); writeln( st ); Пример str ( x, st ) -125 ?
8. Процедура, преобразующая строку st в число x целого или вещественного типа. val (4e-1, x, e rr ); writeln( x ); Пример val ( st, x, err ) 0.4 ? Если преобразование без ошибки, то err = 0, иначе err содержит номер первого символа, не являющегося числом.
9. Функция, преобразующая строчную букву в прописную. writeln(upcase ( f ) ); Пример upcase ( Ch ) F ? Обрабатывает только буквы латинского алфавита.
begin st : = информатика ; writeln(concat( st[7], s t[5], st[4], copy( st, 6, 3 ))); end. Какое слово напечатает ЭВМ? Аромат ?