Строки символов типа String. Функции работы со строками символов. Функции Concat, Copy, Delete, Insert, Length, Pos, Val, Str
Содержание
- 1. Функция Concat. Конкатенация (слияние) строк
- 2. Функция Copy. Получить копию подстроки из указанной строки
- 3. Процедура Delete. Удаление подстроки из строки
- 4. Процедура Insert. Добавить подстроку к строке
- 5. Функция Length. Получить текущую длину строки
- 6. Функция Pos. Поиск подстроки в строке
- 7. Процедура Val. Конвертировать строку в число
- 8. Процедура Str. Конвертировать число в строку
- Связанные темы
Поиск на других ресурсах:
1. Функция Concat. Конкатенация (слияние) строк
Для конкатенации (добавления, слияния) строк используется функция Concat. Общая форма использования функции следующая
ResStr := Concat(S1:string; S2:string [; ... SN:string])
здесь
- S1, S2, SN – строки, которые нужно объединить;
- ResStr – результирующая строка.
Для вызова функции нужно указывать как минимум одну строку-параметр. Результат выполнения функции – результирующая строка типа string.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S1, S2, S3, ResStr : String; begin // Функция Concat() - конкатенация строк S1 := 'Hello'; S2 := ','; S3 := ' world'; ResStr := Concat(S1, S2, S3, '!'); Writeln(ResStr); // Hello, world! Readln; end.
Результат выполнения программы
Hello, world!
⇑
2. Функция Copy. Получить копию подстроки из указанной строки
Для выделения некоторого фрагмента из строки используется функция Copy, имеющая следующее использование
ResStr := Copy(S, Start, Len);
здесь
- S – строковая величина типа String, из которой выделяется фрагмент;
- Start – величина типа Integer, определяющая позицию начала выделяемого фрагмента;
- Len – величина типа Integer, определяющая количество символов фрагмента, которые нужно выделить.
- ResStr – результатом выполнения этой процедуры есть величина типа String.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S1, S2, S3: String; begin // Функция Copy() - получить подстроку из строки S1 := '1234567890'; // исходная строка S2 := Copy(S1, 4, 3); // S2 = '456' Writeln(S2); S3 := Copy(S1, 8, 5); // S3 = '890' Writeln(S3); Readln; end.
Результат выполнения программы
456 890
⇑
3. Процедура Delete. Удаление подстроки из строки
С помощью процедуры Delete можно удалить некоторый фрагмент из строки. Общий вид процедуры:
Delete(S, Start, Len)
здесь
- S – строковая величина, из которой удаляется фрагмент;
- Start – порядковый номер первого символа удаляемого фрагмента;
- Len – количество символов фрагмента, которые нужно удалить.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S : String; begin // 1. Исходная строка S := 'ABCDEF'; // 2. Удалить фрагмент CD delete(S, 3, 2); // S = 'ABEF' Writeln(S); // 3. Задать новую строку S := '123456789'; // 4. Удалить фрагмент '4' delete(S, 4, 1); Writeln(S); Readln; end.
Результат выполнения программы
ABEF 12356789
⇑
4. Процедура Insert. Добавить подстроку к строке
Для вставки в заданную строку другой подстроки используется процедура Insert. В общем случае использование этой процедуры следующее
Insert(S, S_new, Start);
здесь
- S – строковая величина – вставляемый фрагмент;
- S_new – строковая величина, в которую вставляется фрагмент S и где получается результат вставки;
- Start – порядковый номер символа в строке S_new, перед которым вставляется фрагмент S. Значение Start нумеруется с 1.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S1, S2, S3: String; begin // Процедура Insert() - вставить подстроку в строку // 1. Вставка на начало строки S1 := 'ABCD'; Insert('000', S1, 1); Writeln(S1); // 2. Вставка посредине строки S1 := '12345678'; // Исходная строка S2 := 'ABC'; // Вставляемая строка // Вызов процедуры Insert Insert(S2, S1, 3); // S1 = 12ABC345678 Writeln(S1); // 3. Добавление в конец строки S1 := '12345678'; Insert('ABCD', S1, 9); // S1 = 12345678ABCD Writeln(S1); Readln; end.
Результат выполнения программы
000ABCD 12ABC345678 12345678ABCD
⇑
5. Функция Length. Получить текущую длину строки
Для определения длины строки используется стандартная функция Length. В наиболее общем случае использование функции может быть следующим
Len := Length(S);
здесь
- S – строка типа String;
- Len – количество символов в строке S (длина строки).
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S : String; Len : Integer; begin // Функция Length() - получить длину строки S := 'Hello, world!'; Len := Length(S); // Len = 13 Writeln(Len); Len := Length(''); // Len = 0 Writeln(Len); Readln; end.
Результат выполнения программы
13 0
⇑
6. Функция Pos. Поиск подстроки в строке
Для определения местоположения искомого фрагмента строковой величины можно воспользоваться функцией
position := pos(S_find, S);
здесь
- S_find – искомая подстрока;
- S – строка;
- Position – позиция, с которой начинается подстрока S_find в строке S. Значение Position есть типа Byte и нумеруется с 1. Если искомой подстроки в строке не существует, то Position = 0.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S : String; Position : Byte; begin // Функция Pos() - определить позицию вхождения подстроки в строку // 1. Подстрока есть в строке S := '123456789'; Position := Pos('345', S); // Position = 3 Writeln(Position); // 2. Подстроки нету в строке Position := Pos('ABCD', 'ABC'); // Position = 0 Writeln(Position); // 3. В строке есть несколько вхождений подстроки Position := Pos('AB', 'ABCD ABC ABD BAB'); // Position = 1 Writeln(Position); Readln; end.
Результат выполнения программы
3 0 1
⇑
7. Процедура Val. Конвертировать строку в число
Процедура Val позволяет преобразовать строку в число. При этом считается, что строка является представлением числа в символьной форме (например, ‘2.85’, ‘1879’). Эта процедура производит обратную операцию по отношению к процедуре Str.
В наиболее общем случае использование процедуры Val имеет вид:
val(S, V, ErrCode);
здесь
- S – строковая величина;
- V – величина числового типа, которую нужно преобразовать;
- ErrCode – код результата выполнения процедуры. Если преобразование произошло успешно, то ErrCode=0. Если из строки S невозможно получить число V, то ErrCode равен номеру позиции в строке S, которую нельзя преобразовать. К примеру, для строки ‘123A56’ вызов процедуры Val вернет ErrCode = 4.
Пример.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S : String; V1 : Integer; V2 : Real; Code : Integer; begin // Процедура Val, // 1. Конвертировать String => Integer S := '286'; Val(S, V1, Code); // Обработать результат if Code = 0 then Writeln('Ok! V1 = ', V1) else Writeln('Error! ErrCode = ', Code); // 2. Конвертировать String => Real S := '-38.25'; Val(S, V2, Code); // Обработать результат if Code = 0 then Writeln('Ok! V2 = ', V2) else Writeln('Error! ErrCode = ', Code); // 3. Попытка конвертировать строку, содержащую недопустимые символы S := '18U7'; // здесь недопустимые символы Val(S, V2, Code); // Code = 3 if Code = 0 then Writeln('Ok! V2 = ', V2) else Writeln('Error! ErrCode = ', Code); Readln; end.
Результат выполнения программы
Ok! V1 = 286 Ok! V2 = -3.82500000000000E+0001 Error! ErrCode = 3
⇑
8. Процедура Str. Конвертировать число в строку
Процедура Str является обратной процедуре Val и позволяет конвертировать величину числового типа (Integer, Real и т.д.) в строку типа String. Общая форма использования процедуры
Str(V, S);
где
- V – величина числового типа, значение которой преобразуется в строковый вид;
- S – результат преобразования строкового типа.
Приклад.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var S : String; V1 : Integer; V2 : Real; begin // Процедура Str, // 1. Конвертировать Integer => String V1 := 277; Str(V1, S); // S = '277' Writeln('S = ', S); // 2. Конвертировать Real => String V2 := 8.53; Str(V2, S); Writeln('S = ', S); Readln; end.
Результат выполнения программы
S = 277 S = 8.53000000000000E+0000
⇑
Связанные темы
⇑