Строковые типы данных. Строковый тип данных. Язык программирования Turbo Pascal. Строковый тип данных
Скачать 106.5 Kb.
|
Язык программирования Turbo Pascal. Строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис: var s: string[n]; var s: string; n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255. Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв). Пример: 'Текстовая строка' #54#32#61 'abcde'^A^M Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается. Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены. Выражения типа char можно присваивать любым строковым переменным. Процедуры и функции для работы со строками В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками. Функции Функция Copy(s:string; index:integer; count:integer):string Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index. Пример: s := 'Система Turbo Pascal'; s2 := copy(s, 1, 7); {s2 будет равно 'Система'} s3 := copy(s, 9, 5); {s3 будет равно 'Turbo'} s4 := copy(s, 15, 6); {s4 будет равно 'Pascal'} Функция Concat(s1,[s2,...,sn]:string):string (обьединение, слияние) Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция. Функция Length(s:string):integer (длина, расстояние) Функция возвращает в качестве результата значение текущей длины строки-параметра Пример: n := length('Pascal'); {n будет равно 6} Функция Pos(substr,s:string):byte Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0. Пример. s := 'Система Turbo Pascal'; x1 := pos('Pascal', s); {x1 будет равно 15} x2 := pos('Basic', s); {x2 будет равно 0} Процедура__Delete(var_s:string;_index,count:integer)'>Процедуры Процедура Delete(var s:string; index,count:integer) Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index. Пример: s := 'Система Turbo Pascal'; delete(s,8,6); {s будет равно 'Система Pascal'} Процедура Insert(source:string; var s:string;index:integer) Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки. Пример: s := 'Система Pascal'; insert('Turbo ',s,9); {s будет равно 'Система Turbo Pascal'} Процедура Str(X: арифметическое выражение; var st: string) Процедура преобразует численное выражение X в его строковое представление и помещает результат в st. Val(st: string; x: числовая переменная; var code: integer) Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании. В дополнение приведем некоторые функции, связанные с типом char, но которые тем не менее часто используются при работе со строками. Chr(n: byte): char Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n. Ord(ch: char): byte; В данном случае функция возвращает код символа ch. UpCase(c: char): char; Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения. Определим длину строки: Var stroka: string[10]; strLength: Byte; begin stroka := 'sbp'; Writeln(stroka); strLength := Length(stroka); Writeln(strLength); ReadLn(); end. Если строке присвоить значение, длина которого больше допустимой, то лишние символы будут удалены. Пример: Var stroka: string[2]; begin stroka := 'sbp'; Writeln(stroka); ReadLn(); end. Присоединить одну строку к другой в Паскале знаком «+». Var stroka, tire, prog: string; begin stroka := 'sbp'; tire := '-'; prog := 'program'; stroka := stroka + tire + prog; Writeln(stroka); ReadLn(); end. Соединение строк в Паскале с помощью встроенной функции Concat: Var stroka, tire, prog: string; begin stroka := 'sbp'; tire := '-'; prog := 'program'; stroka := Concat(stroka, tire, prog); Writeln(stroka); ReadLn(); end. Вставка строки в другую строку с помощью стандартной функции Insert. Var stroka, prog: string; begin stroka := 'sbp-gram'; prog := 'pro'; Insert(prog, stroka, 5); Writeln(stroka); ReadLn(); end. Скопировать часть строки с помощью функции Copy. Var stroka, pro: string; begin stroka := 'sbp-program'; pro := Copy(stroka, 5, 3); Writeln(pro); ReadLn(); end. Найти подстроку в строке с помощью функции Pos. Var stroka, gram: string; number: integer; begin stroka := 'program'; gram := 'gram'; number := Pos(gram, stroka); Writeln(number); ReadLn(); end. Удалить подстроку из строки с помощью стандартной функции Delete. Var stroka: string; begin stroka := 'program'; Delete(stroka, 1, 3); Writeln(stroka); ReadLn(); end. |