ВУЗ:
Составители:
Рубрика:
3
1. Строковый тип
Строковый тип данных используется при обработке текстовой инфор -
мации. Строковый тип данных является структурированным типом данных и
представляет собой одномерный массив из символов.
Отличие строки от массива из символов состоит в том, что массив имеет
фиксированную длину, заданную при описании. Строка имеет максимальную
длину, определенную по умолчанию , и фактическую длину строки, равную ко-
личеству непустых символов строки.
Существует два подхода к реализации строк.
1. Фактическая длина строки указывается в нулевом элементе строки. В ну-
левой элемент строки записывается символ , код которого равен фактиче-
ской длине строки. При выводе строки нулевой элемент невидим.
Например, описана строка S . Чтобы получить ее фактический размер нуж -
но использовать функцию ord(S[0]).
При таком подходе максимальная длина строки не может превышать 255
символов.
Строковый тип String построен на основе первого подхода к реализации
строк.
2. Фактическая длина строки фиксируется специальным символом. В Паскале
таким символом является NULL, или \0. Когда признак фактической длины
строки находится в конце последовательности символов, то нет необходи -
мости накладывать ограничения на длину строки. Следует помнить при
этом, что длина любой структуры не может превышать 65534 байта.
Строки с завершающим нулем называются ASCIIZ-строками. Такие строки
в Паскале описываются как массивы из символов, первый элемент которых
имеет нулевой индекс. Например, var z: array[0..300] of char;
В стандартном модуле Stings.tpu собраны функции, реализующие операции
над ASCIIZ-строками.
Процедуры и функции, работающие со строками типа String:
• Функция Concat (S1, S2, … , Sn): string - проводит конкатенацию (сцепление)
последовательности строк S1, S2, … , Sn.
• Функция Copy (S, p, n): string - возвращает копию подстроки из n символов
строки S , начиная с символа с номером p .
• Функция Delete (S, p, n): string - удаляет подстроку из n символов из строки S ,
начиная с символа с номером p .
• Функция Insert (S2, S1, p): string - вставляет подстроку S2 в строку S1, начиная
с символа с номером p .
• Функция Length (S): integer – возвращает длину строки S .
• Функция Pos (S2, S1): integer – возвращает номер позиции, начиная с которой
подстрока S2 встречается в строке S1. Если подстрока не найдена, возвращается
ноль.
• Процедура Str (X, S) – преобразует число Х вещественного или целого типа в
3 1. С тро ко вы й тип С тро ко вы й тип д а нны х исполь зуетсяпри обработке текстовой инф ор- мации. С троковый тип данных являетсяструктурированнымтипомданных и представляетсобой одномерный массивизсимволов. О тличие строки отмассиваизсимволовсостоитвтом, что массивимеет ф иксированную длину, заданную при описании. С трокаимеет максималь ную длину, определенную по умолчанию , и ф актическую длинустроки, равную ко- личествунепустых символовстроки. С ущ ествуетдваподходакреализации строк. 1. Ф актическаядлинастроки указываетсявнулевомэ лементе строки. В ну- левой э лементстроки записываетсясимвол, код которого равен ф актиче- ской длине строки. П ри выводе строки нулевой э лементневидим. Н апример, описанастрокаS. Ч тобы получить ее ф актический размер нуж- но исполь зовать ф ункцию ord(S[0]). П ри такомподходе максималь наядлинастроки не может превыш ать 255 символов. С троковый тип String построен наоснове первого подходакреализации строк. 2. Ф актическаядлинастроки ф иксируетсяспециаль нымсимволом. В П аскале такимсимволомявляетсяNULL, или \0. Когдапризнакф актической длины строки находитсявконце последователь ности символов, то нетнеобходи- мости накладывать ограничениянадлинустроки. С ледуетпомнить при э том, что длиналю бой структуры не можетпревыш ать 65534 бай та. С троки с заверш аю щ имнулемназываю тсяASCIIZ-строками. Т акие строки вП аскале описываю тсякакмассивы изсимволов, первый э лементкоторых имеет нулевой индекс. Н апример, var z: array[0..300] of char; В стандартноммодуле Stings.tpu собраны ф ункции, реализую щ ие операции над ASCIIZ-строками. П ро цед уры и ф ункции, работаю щ ие со строками типаString: • Ф ункцияConcat (S1, S2, … , Sn): string - проводитконкатенацию (с цепл ен и е) последователь ности строкS1, S2, … , Sn. • Ф ункцияCopy (S, p, n): string - возвращ аеткопию подстроки изn символов строки S, начинаяс символас номеромp. • Ф ункцияDelete (S, p, n): string - удаляетподстрокуизn символовизстроки S, начинаяс символас номеромp. • Ф ункцияInsert (S2, S1, p): string - вставляетподстрокуS2 встрокуS1, начиная с символас номеромp. • Ф ункцияLength (S): integer – возвращ аетдлинустроки S. • Ф ункцияPos (S2, S1): integer – возвращ аетномер позиции, начинаяс которой подстрокаS2 встречаетсявстроке S1. Е сли подстрокане най дена, возвращ ается ноль . • П роцедураStr (X, S) – преобразуетчисло Х вещ ественного или целого типав