Рядки символів типу 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
⇑
Споріднені теми
⇑