русс | укр

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

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

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

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


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

Строки типа string


Дата добавления: 2014-11-28; просмотров: 832; Нарушение авторских прав


Тип string в Турбо Паскале широко используется для обработки текстов. Напоминает одномерный массив символов array [0..n] of char. Отличие: в массиве количество символов может меняться от 0 до n, где n – максимальное количество символов в строке. Значение n определятся объявлением типа string [n] и может быть любой константой порядкового типа, но не больше 255. Турбо Паскаль разрешает не указывать n. Тогда длина строки принимается максимально возможной n=255. Размер строки указывается в квадратных скобках.

Пример

var

str: string[80];

maxstr: string;

const

January: string[10]= ‘Январь’;

Для строк применимы операции конкатенации (+) и сравнения (=,<>,>,<,>=,<=,). Названные операции выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, то недостающие заменяются значением CHR (0).

function CHR (x:byte):Char;

Возвращает символ с указанным кодом.

x – число, определяющее код символа.

Пример

Код’ ‘ ‘ = 39

Код’ . ‘ = 46

‘А’ > ‘j’

65 49

‘Turbo’ < ‘Turbo Pascal’

‘Паскаль’ > ‘Turbo Pascal’

 

Program EXAMPLE11;

const

Instance: array [1..12] of string [10]= (‘ЯНВАРЬ’,’ФЕВРАЛЬ’,’МАРТ’,’АПРЕЛЬ’,’МАЙ’,’ИЮНЬ’,’ИЮЛЬ’, ‘АВГУСТ’,’СЕНТЯБРЬ’,’ОКТЯБРЬ’,’НОЯБРЬ’,’ДЕКАБРЬ’);

Month: Boolean = False;

var

str: string [10];

i: integer;

begin

writeln(‘введите заглавные символы’);

readln(str);

for i:=1 to 12 do

if str = instance [i] then month:=true;

if month then writeln(‘введено имя месяца’)

else writeln(‘введено не имя месяца’);

end.

К любому символу в строке можно обратиться точно так же, как и к элементу одномерного массива array [0..n] of char.

Пример

var

st: string;

begin

………….

if st [5] = ‘A’ then

……………………



Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки. Первый значащий символ занимает второй байт и имеет индекс 1.

Для работы со строками используются специальные функции и процедуры:

- функции:

concat – объединение строк;

copy – копирование подстроки;

length – длина строки;

pos – поиск подстроки в строке;

- процедуры:

delete – удаление подстроки из строки;

insert – вставка подстроки в строку;

str – преобразование числа в строковую переменную;

val – преобразование символього представления

в двоичное представление.

 

Функция   Назначение и формат
Concat Возвращает объединение строк; concat (st1,st2); str1,str2 – объединяемые строки.
Copy Возвращает копию подстроки из j символов, которые располагаются в строке st, начиная с позиции I; copy (st,i,j);
Length Возвращает длину строки st; length(st);
Pos Возвращает номер позиции, начиная с которой располагается подстрока context в строке st; pos(context,st);
Процедура   Назначение и формат
Delete Удаляет из строки st j символов, начиная с позиции i; delete (st, i, j);
Insert Вставляет подстроку context в строку st, начиная с позиции i; insert (context, st, i);
Str Преобразует число n в строковую переменную st; str (n,st);
Val Преобразует строку ST в двоичное число x, где cod – код неправильного символа; val(st, x, cod);

 

function concat (s1[s2,…sn]:string):string;

Объединяет несколько строк в одну (при необходимости усекает чрезмерно большую строку до 255 символов).

s1,s2…sn - объединяемые строки;

Пример

begin

writeln(concat(‘Здравствуй,’,’ день прекрасный’));

end.

Результат: Здравствуй, день прекрасный

 

function copy (s:string; index : integer; count : integer); string;

Создает подстроку строки s;

s-исходная строка;

index-номер первого выделяемого символа строки (если значение больше размера строки, возвращается пустая строка);

count – число выделяемых символов (если всех необходимых символов в строке нет, возвращается имеющийся остаток строки).

Пример

var

s:string;

begin

s:= ‘Здравствуй, день прекрасный‘;

writeln (copy (s, 1, 10))

end.

Результат: Здравствуй

 

function length (s:string):integer;

Возвращает текущий размер строки;

s- строка, у которой определяется размер.

Пример

var

s: string;

begin

s:=’ “turbo pascal” ‘;

writeln (‘ length = ‘, length (s));

end.

Результат: length=14

 

function pos (substr, s:string):byte;

Поиск последовательности substr в строке s (результат равен номеру первого символа строки s, с которой начинается искомая последовательность, или 0, если такой последовательности в строке нет);

substr-искомая последовательность;

s – строка, в которой ищется последовательность.

Пример

var

s: string;

begin

s:= ‘ 123.5’; { Convert spaces to zeroes }

while pos (‘ ‘, s) > 0 do

s [pos (‘ ‘, s) ] := ‘=’;

writeln (s)

end.

Результат: = = = 123.5

 

procedure delete (var s: string; index: integer; count:integer);

удаляет подстроку из строки s;

s – исходная строка;

index – номер первого удаляемого символа (если номер больше размера строки, то символы не удаляются);

count – число удаляемых символов (если символов в строке недостаточно, удаляется остаток символов).

Пример

var

s: string;

begin

s:= ‘Honest Abe Lincoln’;

delete (s,8,4);

Writeln (s);

end.

Результат: Honest Lincoln

procedure insert (source: string; var s: string; index: integer);

Помещает подстроку source в строку s (если строка получается слишком большого размера, то она уменьшается до 255 символов).

s – исходная строка;

source – подстрока, помещаемая в строку;

index – номер позиции исходной строки, начиная с которой помещается подстрока.

Пример

uses crt;

var

s: string;

begin

clrscr;

s:= ‘ Здравствуй, прекрасный ‘;

insert ( ‘ день ‘, s, 12 );

writeln(s); end.

Результат: Здравствуй, день прекрасный

 

procedure str (x[:m[:n]]; var s: <строковый тип>);

Преобразует число в последовательность символов;

x – выражение вещественного или целого типа;

s – строка типа string или Pchar, в которую записывается символьное представление числа;

m, n – форматы вывода целого типа, аналогично процедуре write. Первый определяет размер поля, в которое выводится данное значение, второй – для вещественных чисел число знаков после запятой (следовательно, с фиксированной точкой).

Пример

var

st:string;

a:integer;

begin

read(a);

str(a, st);

writeln(a,' ',st);

writeln(a+a,' ',st+st)

end.

 

Входные данные Результат Замечание
$a 10 10 20 1010 шестнадцатеричное число $a ($aaa) в ЭВМ переходит в двоичное представление, над ним осуществляются действия по его преобразованию в строковую
$aaa 2730 2730 5460 27302730
-123 -123 -246 -123 -123-123  

 

procedure val (s:< строковый тип>; var v; var code: integer);

Преобразует символьное представление числа в двоичную форму;

s –строка типа string и Pchar с символьным представлением числа;

v – переменная целого или вещественного типа для записи двоичного представления числа;

code – номер неправильного символа;

0,если изображение числа правильное.

Пример

var

i, code: integer;

par: string;

begin

read (par); {Get text from command line }

val ( par, i, code); { Error during conversion to Integer ? }

if code <> 0 then

writeln (' Error at position: ' , code)

else

writeln ( ' Value = ' , i);

writeln (par, ' ' , i);

writeln (par + par, ' ' , i + i)

end.

 

Входные данные Результат code
$ 123 $ 123 $ 123$123
Stop stop stopstop
$0 $0 $0$0
$$11 $$11 $$11$$11

 

Последствия аварийных ситуаций (недопустимое представление числа в символьной форме) зависят от выбранного ключа компилятора

{$R+/-} и типа преобразуемого числа.

Если используется {$R+}, то при недопустимом символе в представлении числа переменная code принимает значение номера неправильного символа, а переменная v принимает значение 0. При этом же ключе в случае переполнения результата программа выбрасывается.

Если {$R-}, а v типа real или longint, то в той же ситуации code принимает значение номера неправильного символа, а v – 0 .

С переменными других типов использовать процедуру в этом случае нецелесообразно, т.к. code принимает всегда значение 0, v будет иметь неправильное значение в случае неправильного представления исходного числа. Завершающие пробелы в символьном представлении числа рассматриваются так же, как ошибочные символы и должны быть удалены до использования процедуры val.

Пример

Дана строка символов до точки. Определить, является ли она палиндромом.

var

i,l:integer;

s1:string;

f:boolean;

begin

writeln('введите текст до точки');

readln(s1); {ввод строки s1}

l:=length(sl); {определение её длины}

f:=true; {установка флага}

for i:=(l-1) div 2 downto 1 do

if s1[i]<>s1[l-i] then f:=false; {сравнение}

if f then writeln('палиндром')

else writeln('не палиндром')

end.

Пояснение

i– переменная цикла;

l – длина строки;

f – флаг;

sl – строка текста.



<== предыдущая лекция | следующая лекция ==>
В операторах цикла repeat,while и for | ASCII Z-строка


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


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

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

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


 


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

 
 

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

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