Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Операции над строками

И замена фрагментов текста | Преобразование строчных букв в заглавные | Понятие множества | Операции над множествами | Случайных неповторяющихся чисел | Определение и правила записи |


Читайте также:
  1. Аддитивная и мультипликативная операции коммутативны
  2. Активные операции коммерческого банка
  3. Аналітичний облік ведеться за кожним виданим векселем та за строками їхньогопогашення.
  4. Аналітичний облік короткострокових кредитів банків ведеться за позикодавцями(банками) в розрізі кожного кредиту (позики) окремо та за строками їхнього пога-шення.
  5. Атомарные операции
  6. Банковские операции.
  7. В дальнейшем изложении мы будем предполагать применение операции переименования во всех конфликтных случаях.

Над строковыми данными допустимы операция сцепления (конкатенации) и операции отношения. Используя строковые переменные, константы, функ­ции и операцию сцепления, можно строить строковые выражения.

9.2.1. Операция сцепления (+)

Применяется для соединения нескольких строк.

Например:

Выражение: 'Turbo' + ' Pascal' + '7.0'

Результат: Turbo Pascal 7.0'

Обратите внимание— операция конкатенации, в отличие от операции сло­жения в математике, не подчиняется известному правилу: "от перестановки слагаемых сумма не меняется", в этой операции каждый из операндов дол­жен находиться строго на своем месте.

Замечание j

Для того чтобы предоставить программистам возможность использовать один и тот же знак операции "+" для работы с данными разных типов, разработчикам компилятора Turbo Pascal пришлось изрядно потрудиться. При обработке тек­ста программы компилятор анализирует типы операндов и формирует для опе­рации "+" различные машинные коды для целых, вещественных и строковых типов. Такое явление в программировании принято называть полиморфизмом. Запомните этот термин— он пригодится на следующих этапах постижения ис­кусства программирования.


Для присваивания строковой переменной результата строкового выражения используется оператор присваивания.

Например: strl:= Труппа учащихся'; str2:= strl + ' школы-лицея';

Приведем пример использования операции конкатенации (листинг 9.3). До­пустим, необходимо дополнить исходную строку справа символом '*' до заданной длины. Такое действие иногда выполняют при формировании важных денежных документов, чтобы нельзя было ничего вписать в пустые места.

[Листинг 9.3.Дополнение строки звездочками '

!...-..;.-...:.........-•.;.!.'..:.:....:... :..:.'...... -...

var s:string;

procedure dopstr(var s:string; n:integer);.

begin

while length(s)<n do s:=s+'*'; end; begin

writeln('Введите строку:');readln(s};

dopstr(s,80); writeln(s); readln end.

Если в тексте процедуры поменять s+' *' на ' *' +s, то строка будет дополнять­ся пробелами не справа, а слева. Было бы разумно добавить в процедуру dopstr еще два параметра: символ, которым следует дополнять строку, и спо­соб дополнения строки (слева, справа, слева и справа равномерно).

Обратите внимание — все строковые типы считаются совместимыми по при­сваиванию, т. е. можно присваивать друг другу значения строк различного размера. К сожалению, размеры строк при этом не контролируются. Если значение переменной после выполнения оператора присваивания превыша­ет по длине максимальный размер, указанный при объявлении, все лишние символы справа отбрасываются, что важно!

Например:

const si:string[13]='Turbo Pascal';

var s2:string[5];

begin

s2:=sl;...

Переменная s2 при этом получит значение 'Turbo', т. к. присваиваемое значение 'Turbo Pascal1 не разместить в тех пяти байтах, которые отведены под символы переменной s2. Фактически операция присваивания будет вы­полнена неверно, хотя никакого сообщения об ошибке не будет выдано.


Замечание

При отладке задач со строками целесообразно помещать в программу директи­ву {$R+}, которая проверяет выход за пределы диапазона изменения индекса. Однако в приведенном выше случае и это не поможет. Остается надеяться только на свою внимательность!

При передаче строки в качестве параметра процедуры совместимость строк разной длины возможна только при отключенной директиве компилятора строгой проверки типов строк ($v-). По умолчанию она включена — {$v+}, поэтому строковые параметры (и формальный, и фактический) должны бьЕТЬ одного размера. Рекомендуем использовать данную директиву, но с осторожностью, т. к. есть риск потери символов справа, если не хватит места в той строке, которая передается в качестве фактического параметра.


Дата добавления: 2015-11-14; просмотров: 55 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Листинг 9.1. Вывод строки в перевернутом виде и по отдельным словам| Процедуры преобразования типов

mybiblioteka.su - 2015-2024 год. (0.005 сек.)