Строковые величины

 

Литерный (символьный) тип char определяется множеством значений кодовой таблицы символов ASCII . Каждому символу задается целое число от 0 до 255. В программе значения переменных и констант типа char должны быть заключены в апострофы.

Пример.

Program lit;

Var c, symbol: char;

Begin

C:= ‘A’;

Symbol:=’д’;

Writeln(c);

Write(symbol);

End.

Результат выполнения программы: А

д

 

Над данными символьного типа определены операции отношения: =, <>, >,<,<=,>=, вырабатывающие результат логического типа, и следующие стандартные функции:

Chr(x) – преобразует выражение х в символ и возвращает значение символа

Ord(ch) – преобразует символ ch в его код и возвращает значение кода

Pred(ch) – возвращает предыдущий символ

Succ(ch) – возвращает следующий символ

Пример.

Ord(‘:’) =58

Ord(‘A’)=65

Chr(128)=Б

Pred(‘Б’)=А

Succ(‘Г’)=Д

 

Строка (строковый тип данных) – это последовательность символов кодовой таблицы ASCII. Количество символов в строке (длина строки) может лежать в диапазоне от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует значение максимальной длины строки данного типа (заключается в квадратные скобки).

Строковые данные могут использоваться в качестве констант. Строковая константа – последовательность символов, заключенная в апострофы. Например, ‘237’, ‘это строковая константа’.

Переменную строкового типа можно определить в разделе описания переменных:

Var <имя>: string[<максимальная длина строки>].

Например, var Name: string[20]. В описании строки можно не указывать длину, в этом случае она равна максимальной величине – 255. Элементы строки определяются именем строки с индексом, заключенным в квадратные скобки. Например, N[5]. Первый символ строки имеет номер 1 и т.д. Можно сказать, что строка представляет собой одномерный массив, элементами которого являются символы. Тип string и тип char совместимы, они могут употребляться в одних и тех же выражениях.

Выражения, в которых операндами служат строковые данные, называются строковыми. Они могут состоять из строковых констант, переменных, знаков операций. Над этими данными допустимы операция сцепления (конкатенация) и операции отношения.

Операция сцепления (+) применяется для соединения нескольких строк в одну строку. Сцеплять можно и константы, и переменные. Длина результирующей строки не должна превышать 255 символов.

Операции отношения (=, <>, >, <, <=, >=) проводят сравнение двух строк и имеют приоритет более низкий, чем операция конкатенации. Сравнение строк производится слева направо до первого несовпадающего символа. Строка считается больше, если в ней первый несовпадающий символ имеет больший номер в таблице кодов.

Например, ‘MS-DOS’<’MS-Dos’.

Если строки имеют различную длину, но в общей части символы совпадают, то более короткая строка меньше.

Например, ‘Компьютер’<’Компьютер ’.

Строки равны, если они полностью совпадают.

Например, ‘Маска’ = ’Маска’.

Для обработки строковых данных можно использовать специальные процедуры и функции.

Процедура Delete(St, poz, n) – удаление n символов строки St, начиная с позиции Poz.

Пример

Значение St: ‘абвгде’ Выражение : Delete(St, 4, 2); Результат ‘абве’

 

‘река Волга’ Delete(St, 1, 5); ‘ Волга’

Процедура Insert (S1, S2, Poz) – вставка строки S1 в строку S2, начиная с позиции Poz.

Пример

Значение S1 ‘ ЕС ’Значение S2: ‘ЭВМ1841’ Оператор Insert (S1, S2, 4); Результат ‘ЭВМ ЕС 1841’

 

Процедура Str(N,St) – преобразование числового значения N в строковый и помещение результата в строку St.

Пример

Значение :N1500 Выражение: Str (N:6,St); Результат: ‘ 1500’

 

Процедура Val(St, N,Code) – преобразует значение St в величину целочисленного или вещественного типа и помещает результат в N. Code – целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно 0, если же обнаружена ошибка, то Code будет содержать номер позиции первого ошибочного символа, а значение N не определено.

Пример

Значение St Выражение Результат
‘1500’ Val(St, N,Code); Code=0
’14.2A+02 Val(St, N,Code); Code=5

 

Функция Copy(S, Poz, N) – выделяет из строки S подстроку длиной N символов, начиная с позиции Poz.

Пример : Значение S : Мама мыла раму’ Выражение: Copy(S, 6, 4); Результат : ‘мыла’

 

Функция Concat(S1,S2,…,Sn) – выполняет сцепление строк S1,S2,…,Sn в одну строку.

Пример : Выражение: Concat(‘Мама ’,’мыла ’,’раму’) Результат : ‘Мама мыла раму’

 

Функция Length(S) – определяет текущую длину строки S.

Пример : Значение S : 1500 символов’ Выражение Результат : Length(S) 13

Функция Pos(S1,S2) – определяет первое появление в строке S2 подстроки S1.

 

Пример

Значение S2 Выражение Результат
‘abcdef’ Pos(‘cd’,S2)
‘abcdef’ Pos(‘k’,S2)

 

Функция UpCase (ch) – преобразует строчную букву в прописную.Обрабатывает буквы только латинского алфавита.

Пример: Значение Ch: ‘d’ Выражение: UpCase (ch) Результат : ‘D’

 

Пример: Из данной символьной строки выбрать все цифры и сформировать другую строку из этих цифр, сохранив их последовательность.

 

Program Stroki;

Var S1, S2:string;

Begin

Write(‘Введите строку’);

Readln(S1);

S2:= ‘ ‘;

For i:=1 to length(S1) do

If (S1[i]>=’0’) and (S1[i]<=’9’)

Then S2:=S2+S1[i];

Writeln(‘Результат’, S2)

End.