Delphi. Pascal
Урок 17. Работаем со строками
Символьные типы данных
Тип | Описатель типа (имя) | Значение типа (пример) |
Символьный (литерный) | char | 'a' |
#13 | ||
Строковый | string | 'задача' |
'тема'#13#10'урока:' |
Функция | Результат функции | Пример |
length(s) | Длина строки | n:=length(s) |
pos(s1,s2) | Начало первого вхождения строки s1 внутри строки s2 (номер позиции) | n:=pos('+',s) |
copy(s,p,n) | Часть строки s длиной n, начиная с позиции p | c:=copy(s,4,2) |
concat(s1,s2,s3,...sn) | Соединить строки (функция конкатенации) | c:=concat(s,';',t,'.') |
Функция | Результат функции | Пример |
upcase(c) | Преобразовать малую букву латинского алфавита в большую (символ верхнего регистра) | c:=upcase(c) |
chr(n) | Символ с номером n | c:=chr(n) |
ord(c) | Номер символа со значением c | n:=ord(c) |
succ(c) | Следующий символ таблицы ASCII | c:=succ(c) |
pred(c) | Предыдущий символ таблицы ASCII | c:=pred(c) |
Процедура | Операция | Пример |
delete(s,p,n) | Удалить часть строки s длиной n, начиная с позиции p | delete(s,n,1) |
insert(s1,s2,p) | Вставить строку s1 в строку s2, начиная с позиции p | insert('+',s,1) |
val(s,x,r) | Преобразовать строку s в число x с признаком результата r | val(s,x,nan) |
str(x:f,s) | Преобразовать число x в строку s с форматом числа f | str(x:10,s) |
str(x:10:2,s) | ||
s1 + s2 | Соединить строки (операция конкатенации) | s:=s+';'+t+'.' |
Для строк в Delphi предусмотрено несколько типов. На этом занятии мы с вами рассмотрим тип String. Для переменных такого типа мы рассмотрим основные функции - для вычисления длины строки, для выделения подстроки, для вставки и удаления нескольких символов и т. п.
Лучше сразу все эти функции рассмотреть на примере:
...
var
s1, s2, s3: String;
n: Integer;
begin
s1:='Igor';
s2:='Alexeev';
//Длина строки.
n:=Length(s1);
Writeln(n); //Выведется 4.
//Конкатенация (сложение) строк.
s3:=s1 + ' ' + s2; //Первый способ.
Writeln(s3); //Выведется 'Igor Alexeev'.
s3:=Concat(s1, ' ', s2); //Второй способ.
Writeln(s3); //Выведется 'Igor Alexeev'.
//Поиск подстроки (первый аргумент) в строке (второй агрумент).
//Функция возвращает номер первого вхождения символа (нумерация с 1).
//Если вхождение не найдено, то возвращается ноль.
n:=Pos('go', s1);
Writeln(n); //Выведется 2.
//Удаление из сроки S (задается первым агументом)
//начиная с позиции M (второй аргумент)
//N символов (третий аргумент).
//Результат записывается в S;
Delete(s2, 5, 3);
Writeln(s2); //Выведется 'Alex'.
//Вставка первого аргумента в строку,
//задаваемую вторым аргументом начиная с позиции,
//определяемой третьим аргументом.
Insert('222', s2, 2);
Writeln(s2); //Выведется 'A222lex'.
//Выделение подстроки (из первого параметра).
//Второй параметр определяет, с какого символа выделяем
//(нумерация с нуля), третий - сколько выделяем.
s2:=Copy(s1, 1, 2);
Writeln(s2); //Выведется 'Ig'.
Readln;
end.
Использование функций достаточно ясно из примера.
Небольшое замечание. Строки в Delphi, в отличие, например, от C/C++, заключаются в одинарные кавычки.