Строковая величина - величина, значением которой является последовательной символов.В одну переменную типа String можно записать до 255 символов. По сути это массив, содержащий в себе элементы типа char (символьный тип данных).
Длина строки – количество символов в строке(может изменяться от 0 до 255).
п.2 Описание строковой величины
Переменная string описывается так же, как и переменные типа real, integer или char.
var s:string; // s – любая переменная, не описанная ранее
Если вы хотите указать максимальное количество символов, которое может содержать в себе строка, то это делается в квадратных скобках:
var s:string[8]; // 8 – максимальное количество символов в строке
п.3 Операции над строковыми величинами
Строки можно присваивать, сравнивать, вводить, выводить и соединять.
1. Операции присваивания
s:=’Turbo Pascal’;
s1:=s; если длина s>s1, то лишние символы будут отброшены
str:=’x’;
2. Операции сравнения (отношения) =, <>, >, <, <=, >=.
Правила сравнения строк:
1)Сравнение строк производится посимвольно в соответствии с их кодами слева направо до первого не совпадающего символа. Строка считается больше, если в ней первый не совпадающий символ имеет больший номер в таблице кодов.
Например, ‘MS-DOS’<’MS-Dos’.
2)Если строки имеют различную длину, но в общей части символы совпадают, то более короткая строка меньше.
Например, ‘Компьютер’<’Компьютер ’.
3)Строки равны, если они полностью совпадают, т. е. совпадают длины и содержание.
Например, ‘Маска’ = ’Маска’.
3. Сложение (конкатенация) строк.
Операция сцепления (+) применяется для соединения нескольких строк в одну строку. Сцеплять можно и константы, и переменные. Длина результирующей строки не должна превышать 255 символов.
s1 := 'John';
s2 := 'Black';
s1 := s1 + ' ' + s2; Результат: s1 := 'John Black'
4. Операции ввода-вывода.
Ввод строки: read(s); или readln(s);
Вывод строки: write(s); или writeln(s);
п.4 Стандартные процедуры и функции.
Для обработки строковых данных можно использовать специальные процедуры и функции.
delete (st,poz,n) — удаление n символов строки st, начиная с позиции роz.
Если значение роz больше, чем размер строки, ничего
не удаляется.
Например:
st1:=’informatika’;
delete(st1,3,5); {intika}
insert (str1,str2,poz) — вставка строки str1 в строку str2, начиная с
позиции poz. He перепутайте: первый параметр
— что вставляем, второй — куда.
Например:
st1:=’forma’;
st2:=’tika’;
insert(’in’, st1, 1); {informa}
insert(st2, st1, 8); {informatika}
Обратите внимание — при вставке символов обязательно нужно
контролировать длину полученной строки, чтобы не потерять последние символы
При этом никакого сообщения об ошибке не выдается.
length (st) — вычисляет текущую длину в символах строки st. Резуль
тат имеет целочисленный тип.
Например:
Var s1 : string;
n : byte;
…
s1 := 'Turbo Pascal';
n := length(s1); {12}
сopy(st, poz, n) — выделяет из строки st подстроку длиной n символов,
начиная с позиции роz. Если poz больше длины стро-
ки, то результатом будет пустая строка.
3
Например:
s1:='Turbo Pascal';
s2:=copy(s1,1,5) ; {Turbo}
s3:=copy(s1,7,3); {Pas}
concat(strl,str2,..., strn) — выполняет сцепление строк strl, str2, ... strn в
том порядке, в каком они указаны в списке
параметров.
Например: s:=concat('AA', 'XX', 'Y');{ в результате S='AAXXY'; }
Функция concat выполняет те же действия, что и операция конкатенации.
Например, для приведенного случая то же самое можно было записать так:
s:='AА'+'ХХ'+'У'.
роs (str1, str2) — обнаруживает первое появление в строке str2 под
строки strl. Результат имеет целочисленный тип и
равен номеру той позиции, где находится первый
символ подстроки strl. Если в str2 подстроки strl не
найдено, результат равен 0.
Например:
s1:= 'Turbo Pascal';
n1:=pos('Pascal',s1); {7}
n2:=pos('pascal',s1); {0}
str (number, st) — преобразование числового значения величины num-
ber в строку st. После number может записываться
формат, аналогичный формату вывода. Если в фор-
мате указано недостаточное для вывода количество
разрядов, поле вывода расширяется автоматически
до нужной длины.
Например:
var s1, s2, s3, s4 : string;
num1 : integer;
num2 : real;
…
num1:=5;
num2:=5.78;
str(num1,s1); {s1=’5’}
str(num1:3,s2); {s2=’ 5’}
str(num2,s3); {s3=’5.780000000000E+00’}
val (st, number, code) — преобразует значение st в величину целочис-
ленного или вещественного типа и помещает
результат в number. Code - целочисленная
переменная.
Если во время операции преобразования ошибки не обнаружено, значение code
равно нулю, если ошибка обнаружена (строковое значение не переводится в
цифровое), code будет содержать номер позиции первого ошибочного символа, а
значение number не определено.
Например:
s1:=’5.78’; s2:=’5,78’;
val(s1,num1,cod1); {num1=5.78 cod1=0}
val(s2,num2,cod2); {cod2=2 – второй символ ошибочный}