русс | укр

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

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

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

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


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

Стандартные функции и процедуры обработки строк


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


Стандартные функции

Операции

Действия с символами

Типизированные константы

Нетипизированные константы

 

Все правила задания символов и строк как неименованных констант остаются в силе и при задании именованных нетипизированных констант в специальном разделе const. Например:

 

const c3 = ''''; {это один символ - апостроф!}

s3 = 'This is a string';

 

 

Типизированная константа, которая будет иметь тип char или string, задается в разделе const следующим образом:

 

const c4: char = ''''; {это один символ - апостроф!}

s4: string[20] = 'This is a string';

 

 

Результатом унарной операции

 

#<положительная_неименованная_константа_целого_типа>

 

является символ, номер которого в таблице ASCII соответствует заданному числу. Например,

 

#100 = 'd'

#39 = '''' {апостроф}

#232 = 'ш'

#1000 = 'ш' {потому что (1000 mod 256)= 232}

 

Кроме того, к символьным переменным, как и к значениям всех порядковых типов данных, применимы операции сравнения <, <>, >, =, результат которых также опирается на номера символов из таблицы ASCII.

 

 

Функция chr(k:byte):char "превращает"; номер символа в символ. Действие этой функции аналогично действию операции #. Например:

 

c:= chr(48); {c: char}

{c = '0'}

 

Обратной к функции chr() является уже изученная нами функция ord(). Таким образом, для любого числа k и для любого символа с

 

ord(chr(k)) = k и chr(ord(c)) = c

 

Стандартные процедуры и функции pred(), succ(), inc() и dec(), определенные для значений любого порядкового типа, применимы также и к символам (значениям порядкового типа данных char). Например:



 

pred('[') = 'Z'

succ('z') = '{'

inc('a') = 'b'

inc('c',2) = 'e'

dec('z') = 'y'

dec(#0,4) = '№' {#252}

 

Стандартная функция upcase(c: char):char превращает строчную букву в прописную. Символы, не являющиеся строчными латинскими буквами, остаются без изменения (к сожалению, в их число попадают и все русские буквы).

 

program code;

{Программа читает символ с клавиатуры и выводит на экран этот

символ и соответствующий ему внутренний код}

var ch : char;

begin

write(‘Введите символ’);

readln(ch);

writeln(ch, ‘=’, ord(ch));

end.

 

 

Для обработки символьных массивов, которыми являются строки, в языке Pascal существуют специальные подпрограммы:

 

Функция concat(s1,_,sN:string):string осуществляет слияние (конкатенацию) всех перечисленных строк или символов в указанном порядке. Если длина итоговой строки больше 255-ти символов, то произойдет отсечение "хвоста". Кроме того, даже если результат конкатенации не был усечен, но программа пытается сохранить его в переменную заведомо меньшей длины, то усечение все равно состоится:

 

concat('abc','3de',' ','X','yz') = 'abc3de Xyz'

 

Функция copy(s:string;i,k:byte):string вычленяет из строки s подстроку длиной k символов, начиная с i-го. Если i больше длины строки, то результатом будет пустая строка. Если же k больше, чем длина оставшейся части строки, то результатом будет только ее "хвост":

 

copy('abc3de Xyz',2,4) = 'bc3d'

copy('abc3de Xyz',12,4) = ''

copy('abc3de Xyz',8,14) = 'Xyz'

 

Процедура delete(s:string;i,k:byte) удаляет из строки s подстроку длиной k символов, начиная с i-го. Если i больше длины строки, то ничего удалено не будет. Если же k больше, чем длина оставшейся части строки, то удален будет только ее "хвост":

 

{s = 'abc3de Xyz'} {s = 'abc3de Xyz'}

delete(s,2,3); delete(s,8,13);

{s = 'ade Xyz'} {s = 'abc3de '}

 

Процедура insert(ss,s:string;i:byte) вставляет подстроку ss в строку s, начиная с i-го символа. Если i выходит за конец строки, то подстрока ss припишется в конец строки s (если результат длиннее, чем допускается для строки s, произойдет его усечение):

 

{s = 'abc3de Xyz'} {s = 'abc3de'}

insert('xyz',s,2); insert('xyz',s,12);

{s = 'axyzbc3de Xyz'} {s = 'abc3dexyz'}

 

Функция length(s:string):byte возвращает длину строки s:

 

length('abc3de Xyz') = 10

 

Функция pos(ss,s:string):byte определяет позицию, с которой начинается первое (считая слева направо) вхождение подстроки ss в строку s. Если ss не встречается в s ни разу, функция вернет 0:

 

pos('abc3de Xyz','X') = 8

 

Процедура str(x[:w[:d]],s:string) превращает десятичное число x (можно указать, что в этом числе w цифр, из них d дробных) в строку s. Если число короче указанных величин, то спереди и/или сзади оно будет дополнено пробелами:

 

str(156.4:7:2,s);

{s = ' 156.4 '}

 

Процедура val(s:string;i:<арифметический_тип>;err:byte) превращает строку s в десятичное число x (в случае ошибки в переменную err будет записан номер первого недопустимого символа):

 

{s = '15.47'}

val(s,x,err);

{x = 15.47}

 



<== предыдущая лекция | следующая лекция ==>
Неименованные константы | Конкатенация


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


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

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

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


 


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

 
 

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

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