Программирование на языке Pascal
6cac1dc9

Обращение к компонентам строки


Доступ к k-му символу строки осуществляется так же, как к k-й компоненте массива (жирные скобки являются обязательным элементом синтаксиса):

<имя_строки>[<индекс>]

Например:

{s = '15.47'} c:= s[3]; {c = '.'}

Однако, в отличие от массива, нельзя напрямую заменять символы в строке, то есть действие

s[i]:= 'a';

не вызовет ошибки при компиляции, но, скорее всего, не станет работать во время выполнения программы. Для того чтобы изменить символ в строке, нужно воспользоваться стандартными функциями length(), concat() и copy(). В этом случае простое, казалось бы, действие приходится представлять как последовательность четырех операций:

  1. В качестве первой подстроки взять из строки s символы с 1-го по (k-1)-й:

    s1:= copy(s,1,k-1);

  2. В качестве второй подстроки взять новое значение заменяемого символа:

    s2:= new_char;

  3. В качестве третьей подстроки взять оставшуюся часть строки s:

    s3:= copy(s,k+1,length(s)-k);

  4. Слить эти строки воедино, а результат записать вместо исходной строки s:

    s:= concat(s1,s2,s3);

Или можно объединить все четыре действия в одном операторе:

s:= concat(copy(s,1,k-1), new_char, copy(s,k+1,length(s)-k));



Содержание раздела