Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обращение к компонентам строки

Сравнения

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

Строки - это единственный структурированный тип данных, для элементов которого определен порядок и, следовательно, возможны операции сравнения (=, >, <).

На строках определен так называемый лексикографический порядок: из двух строк меньшей считается та, у которой первый различный символ меньше. Считается, что пустая строка меньше любой другой строки.

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

Итак,

'abc' < 'xyz''a' < 'abc''1200' < '45''Anny' < 'anny'

Доступ к k-му символу строки осуществляется так же, как к k-й компоненте массива (жирные скобки являются обязательным элементом синтаксиса):

<имя_строки>[<индекс>]

Например:

{s = '15.47'}c:= s[3];{c = '.'}

Однако, в отличие от массива, нельзя напрямую заменять символы в строке, то есть действие

s[i]:= 'a';

не вызовет ошибки при компиляции, но, скорее всего, не станет работать во время выполнения программы. Для того чтобы изменить символ в строке, нужно воспользоваться стандартными функциями length(), concat() и copy(). В этом случае простое, казалось бы, действие приходится представлять как последовательность четырех операций:

1. В качестве первой подстроки взять из строки s символы с 1-го по (k-1)-й:

s1:= copy(s,1,k-1);

2. В качестве второй подстроки взять новое значение заменяемого символа:

s2:= new_char;

3. В качестве третьей подстроки взять оставшуюся часть строки s:

s3:= copy(s,k+1,length(s)-k);

4. Слить эти строки воедино, а результат записать вместо исходной строки s:

s:= concat(s1,s2,s3);

Или можно объединить все четыре действия в одном операторе:

s:= concat(copy(s,1,k-1), new_char, copy(s,k+1,length(s)-k));
<== предыдущая лекция | следующая лекция ==>
Стандартные функции и процедуры обработки строк | Неименованная константа
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 258; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.