Delphi. Урок 13. Работа со строками 1/2

В этом уроке мы более подробно разберем различные методы работы со строками. Научимся производить простые операции копирования, поиска, вставки и т.п.
В прошлом уроке мы рассмотрели достаточно полезные функции преобразования чисел в строки и наоборот. Теперь давайте рассмотрим несколько функций работы непосредственно с самими строками.

Сложение строк (операция конкатенации)

Сложение строк реализуется практически как и сложение обыкновенных чисел следующим образом:

1

2

3

4

5

6

7

8
 
var

  a,b,c:string;

begin

  b := 'Cybern.ru';

  c := ' is a best website';

  a := b + c;

  // в результате строка a будет выглядеть так: "Cybern.ru is a best website"

end;
Получение длины строки

Получение длины строки в Delphi реализуется при помощи функции Length, которая возвращает в качестве результата целочисленное число.

1

2

3

4

5

6

7

8
 
var

  a:string;

  count:integer;

begin

  a := 'Cybern.ru'; // 9 символов

  count := Length(a);

  // в результате переменная count будет равна 9

end;
Строка как массив

В любой строке можно получать доступ к каждому ее символу. Таким образом, можно рассматривать строку как одномерный массив символов, т.е. можно обращаться к каждому символу по его индексу. Важно учесть, что индексы в строках типа String нумеруются не с 0, а c 1, т.е. индекс первого символа равен 1, а индекс последнего символа равен Length(s) (длине этой строки).

1

2

3

4

5

6

7

8

9
 
var

  a, b:string;

  c: char;

begin

  a := 'Cybern.ru'; // 9 символов

  b := a[3]; // символ 'b'

  c := a[3]; // можно использовать тип Char, который хранит в себе не более 1 символа

  c := a[length(a)]; // получение последнего символа 'u'

end;
Преобразование строки к нижнему и верхнему регистру
1

2

3

4

5

6

7
 
var

  a, b:string;

begin

  a := 'CyberN.RU';

  b := LowerCase(a); // строка b будет равна 'cybern.ru'

  b := UpperCase(a); // строка b будет равна 'CYBERN.RU'

end;
Поиск в строке

Для поиска позиции определенной подстроки в строке используется функция Pos, возвращающая в результате своего вхождения начальный индекс этого вхождения в строке. Этой функции необходимо передать два параметра: подстроку, которую ищем, и строку, в которой производим поиск. Рассмотрим простой пример.

1

2

3

4

5

6

7

8
 
var

  a, b:string;

  с: integer;

begin

  a := 'CyberN.RU is the best website about programming';

  b := 'website';

  c := pos(b, a); // c = 23

end;

Также существует еще одна аналогия функции pos, но имеющая немного больше возможностей — PosEx. Она позволяет производить поиск подстроки начиная с определенного индекса в строке. Но для работы с этой функцией необходимо добавить в раздел uses модуль StrUtils.

1

2

3

4

5

6

7

8
 
var

  a, b:string;

  с: integer;

begin

  a := '123abc123123123';

  b := '123';

  c := PosEx(b, a, 4); // c = 7

end;

Как видите, преимущество PosEx заключается в том, что при поиске можно игнорировать определенные вхождения до указанного индекса. Это бывает очень удобно.

Вставка одной строки внутрь другой

Функция Insert позволяет вставить подстроку внутрь исходной строки, начиная с указанного индекса. При этом вставка происходит со сдвигом последующих символов вправо на длину вставляемой подстроки.

1

2

3

4

5

6

7
 
var

  a, b:string;

begin

  a := 'CyberN.RU is the website about programming';

  b := 'best ';

  Insert(a, b, 13); // a = "CyberN.RU is the best website about programming"

end;
Читать далее
Категория: delphi 7 | Добавил: ghost_mod (14.09.2016)
Просмотров: 842 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: