Параметры таковы:
• S – ссылка на строку;
• Index – индекс первого удаляемого символа;
• Count – количество удаляемых символов.
Вот пример её применения.
S:= ’Free Pascal forever!’;
Delete(S, 6, 7); { ’Free forever!’ }
Сравнение строк
Мы уже сравнивали строки на равенство (вспомните проверку пароля). Но строки сравнивают и на больше–меньше — лексикографически. При этом сравниваются слева направо коды символов двух строк в смысле их алфавитного порядка. Если длины строк разные и короткая совпадает с началом длинной, то большей считается длинная строка. Вот примеры:
Writeln (’Borland’ > ’Pascal’); { false }
Writeln (’ABC’ > ’AB’); { true }
Writeln (’ABC’ > ’abc’); { false }
Writeln (’45’ > ’1000’); { true, поскольку ’4’ > ’1’ }
В первом примере код буквы «B» меньше кода буквы «P», поэтому левая строка меньше правой. Во втором случае первые символы совпадают, но левая строка длиннее, а значит больше. В третьем примере левая строка меньше, — тоже в соответствии с таблицей кодировки. Обратите внимание на неожиданный результат сравнения строк, составленных из цифр, — это вам не числа!
Сравнивая строки, можно отсортировать их в лексикографическом порядке (как если бы они располагались в словаре). К сожалению, такое сравнение работает только для латинских букв, для русских оно не всегда верно, приходится изобретать свою функцию сравнения (в DELPHI этой проблемы нет).
Перевод символов в верхний регистр (UpСase)
Функция UpСase меняет код латинской буквы, переводя её из нижнего в верхний регистр. Иными словами, она превращает строчную (маленькую) латинскую букву в заглавную (большую). Объявление функции таково.
function UpCase(Ch: Char): Char;
Входной параметр – символ, а возвращается почти тот же символ, только «подросший», вот примеры.
c:= UpCase(’r’); { ’R’ }
c:= ’n’;
c:= UpCase( c ); { ’N’ }
Подсунув этой функции большую латинскую букву, цифру или знак препинания, вы получите назад свой символ неизменным. То же будет и с русскими буквами – они не обрабатываются функцией UpСase.
c:= UpCase(’R’); { ’R’ }
c:= UpCase(’8’); { ’8’ }
c:= UpCase(’ы’); { ’ы’ }
Функцией UpСase обычно приводят введенные строки к определенному виду. Ведь пользователь может ввести данные как заглавными, так и строчными буквами, а это иногда мешает правильной обработке строки.
Ознакомившись со строковой теорией, применим её, что называется, «в бою».
Вот вам строка, посчитайте в ней количество слов «Pascal». Чуть подумав, вы остановитесь на функции Pos, – ведь она возвращает позицию искомого