русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Логическая структура строки

Строка - это линейно упорядоченная последовательность символов, принадлежащих конечному множеству символов, называемому алфавитом.

Строки обладают следующими важными свойствами:

· их длина, как правило, переменна, хотя алфавит фиксирован;

· обычно обращение к символам строки идет с какого-нибудь одного конца последовательности, т.е. важна упорядоченность этой последовательности, а не ее индексация; в связи с этим свойством строки часто называют также цепочками;

· чаще всего целью доступа к строке является не отдельный ее элемент (хотя это тоже не исключается), а некоторая цепочка символов в строке.

Говоря о строках, обычно имеют в виду текстовые строки - строки, состоящие из символов, входящих в алфавит какого-либо выбранного языка, цифр, знаков препинания и других служебных символов. Действительно, текстовая строка является наиболее универсальной формой представления любой информации: на сегодняшний день вся сумма информации, накопленной человечеством - от Ветхого Завета до нашего учебного пособия - представлена именно в виде текстовых строк. В наших дальнейших примерах этого раздела будем работать именно с текстовыми строками. Однако, следует иметь в виду, что символы, входящие в строку могут принадлежать любому алфавиту. Так, в языке PL/1, наряду с типом данных "символьная строка" - CHAR(n) - существует тип данных "битовая строка" - BIT(n). Битовые строки, составляются из 1-битовых символов, принадлежащих алфавиту: { 0, 1 }. Все строковые операции с равным успехом применимы как к символьным, так и к битовым строкам.

Кодирование символов было рассмотрено в главе 2. Отметим, что в зависимости от особенности задачи, свойств применяемого алфавита и представляемого им языка и свойств носителей информации могут применяться и другие способы кодирования символов. В современных вычислительных системах принята кодировка всего множества символов на разрядной сетке фиксированного размера (1 байт).

Рассмотрим три примера возможностей работы со строками.

Язык C является языком системного программирования, типы данных, с которыми работает язык C, максимально приближены к тем типам, с которыми работают машинные команды. Поскольку машинные команды не работают со строками, нет такого типа данных и в языке C. Строки в C представляются в виде массивов символов. Операции над строками могут быть выполнены как операции обработки массивов или же при помощи библиотечных (но не встроенных!) функций строковой обработки.

В языках универсального назначения обычно строковый тип является базовым в языке: STRING в PASCAL, CHAR(n) в PL/1. Основные операции над строками реализованы как простые операции или встроенные функции. Возможны также библиотеки, обеспечивающие расширенный набор строковых операций.

Тип Макс длина #0 в конце Используется для
ShortString Нет Для старых версий
AnsiString ~2^31 (2GB) Есть ANSI-символы
String 255/2GB Есть/нет ANSI/Unicode-символы
WideString ~2^30 есть Unicode-символы; серверах COM и интерфейсах
PChar   есть  

По умолчанию {$H+}, компилятор интерпретирует String (когда она появляется без заключенного в скобки числа) как AnsiString с символом #0 на конце.

AnsiString, иногда называют длинной строкой, - предпочтительный тип для большинства целей. Типы String могут смешиваться в выражениях; компилятор автоматически выполняет необходимые преобразования.

Объявление длинной строки:

var

S: string;

Стандартная функция Length возвращает число символов в строке. Процедура SetLength устанавливает длину строки. Сравнение строк определяется упорядочением символов в соответствующей позиций.

Если S: string и i переменная целого типа, то S[i] представляет i-й символ в S. Для ShortString или AnsiString, S[i] - типа AnsiChar; для WideString, S[i] - типа WideChar. S[i]:= 'A’ назначают «А» для второго символа S. В следующем примере используется стандартная функция UpCase для того, чтобы преобразовать S в верхний регистр:

var

i: integer;

begin

for i:=1 to Length(s) do S[i] := UpCase(S[i]);

end;

q function UpperCase(const S: string): string; - возвращает строку, преобразуя ASCII символы 'a'..'z' в верхний регистр.

q function AnsiUpperCase(const S: string): string; - преобразовывает все символы строки в верхний регистр. Эта функция поддерживает мульти-байтовые символьные таблицы (MBCS).

q function StrUpper(Str: PChar): PChar; - преобразовывает Str в верхний регистр и возвращает Str.

Будьте осторожными с индексами строк, т.к. обращение к символу за концом строки может привести к ошибке. Можно назначить переменной string константы или любое другое выражение типа string. Длина строки изменяется динамически при присваивании. Примеры:

S := 'Петя!';

S := 'Hello, ' + 'Петя!';

S := ' '; { пробел }

S := ''; { пустая строка }

Короткая строка ShortString может содержать от 0 до 255 символов, занимая от 1 до 256 байтов памяти. Первый байт хранит длину строки. Если S - переменная типа ShortString, то Ord(S[0]), аналогично Length(S), возвращает длину S; изменение S[0], подобно SetLength, изменяет длину S. Короткие строки ShortString использую 1-байтовые символы ANSI и поддерживаются только для совместимости со старыми версиями.

Например,

var

S: string[100];

описывает переменную S, котора может содержать до 100 символов.

Просмотров: 529


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.