Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
101
Добавлен:
04.03.2014
Размер:
80.38 Кб
Скачать
      1. Процедуры и функции работы со строками.

  1. Процедура DELETE(ST,INDEX,COUNT) – удаляет COUNT символов строки ST, начиная с символа с номером INDEX, где

ST - имя переменной строкового типа,

COUNT – переменная, константа и выражение целого типа, содержащая количество удаляемых символов

INDEX - переменная, константа и выражение целого типа, содержащая номер первого из удаляемых символов.

Например

Если ST = ‘dddddsssssfffff’, то после выполнения процедуры DELETE(ST,6,5)

строка станет ST = ‘dddddfffff’

  1. Процедура INSERT(ST2,ST1,INDEX) – вставляет подстроку символов ST2 в строку ST1, начиная с символа с номером INDEX, где

ST1 – переменная или константа строкового типа

ST2 - переменная строкового типа,

INDEX - переменная, константа и выражение целого типа, содержащая номер первого из удаляемых символов

например

Если ST1 = ‘dddddddddd’, ST2 = ‘аааааа’то после выполнения процедур

а) INSERT(ST1, ST2,6) результат ST = ‘dddddааааааddddd’

в) INSERT(‘PAS’, ST2,6) результат ST = ‘dddddPASddddd’

  1. Процедура STR(IBR[:W][:D],ST) преобразует значение числа в строковое представление

IBR – числовое значение целого или вещественного типа

W – ширина поля вывода преобразуемого числа, аналогично формату процедуры writeln, можно не указывать

D – количество знаков дробной части числа после десятичной точки, которое указывается только для вещественных чисел при наличии параметра W.

ST - имя переменной типа string, в которой формируется символьное представление параметра IBR.

  1. Процедура VAL(ST,IBR,COD) преобразует значение числа в строковом представлении, во внутреннее представление десятичное целого или вещественного числа.

ST – строка символов, содержащая число в символьном виде

IBR – число во внутреннем представлении, возвращаемое процедурой

COD – содержит код возвращаемой ошибки, (0 если преобразование прошло успешно, в противном случае там возвращается номер ошибочного символа

  1. Функция COPY(ST,INDEX,COUNT) – функция типа string,, возвращает копию строки ST, длиной COUNT символов, начиная с символа с номером INDEX

Например

Пусть ST = ‘qqqEEEEEEuuuuu’ тогда результатом функции

S:= COPY(ST,4,6) будет строка S => ‘EEEEEE’

  1. Функция CONCAT(ST1,ST2,…STN) – функция типа string,, возвращает строку сцепление строк параметров.

ST1,ST2,…STN – переменные или константы строкового типа, используемые для формирования строки результата.

  1. Функция LENGTH(ST) - функция типа integer, возвращает текущую длину строки S

  2. Функция POS(ST2,ST1) - функция типа integer, возвращает позицию, с которой подстрока ST2 входит в строку ST1 – первое вхождение. Если позиция вхождения не найдена – функция возвращает 0.

  3. Процедура FILLCHAR(ST,COUNT,SYM) – формирует и возвращает строку ST длиной COUNT, заполненную символами SYM

ST – переменная строкового типа

COUNT – константа или переменная целого типа

SYM – переменная или константа типа CHAR

  1. Функция UPCASE(SYM) функция типа CHAR, возвращает символ, соответствующий символу верхнего регистра для SYM, если таковой имеется, либо сам символ SYM, если для него не представлен символ верхнего регистра.

Рассмотрим, как будет выглядеть решение задачи из примера 3 с использованием строковых типов

Пример 4. Дана строка не более 40 символов, состоящая из слов, разделенных пробелами. Написать программу удаления лишних пробелов, оставляя не более одного между словами и ни одного в начале строки.

program probel;

{программа удаления «лишних» пробелов с использованием строковых функций и процедур }

type st=string[40]; {тип символьная строка}

var

str:st;

k:byte;

begin

writeln('введите строку длиной <= 40 символов');

readln(str);

writeln(' введенная строка:');

writeln(str);

k:=0;

k:=pos(' ',str); {есть ли сдвоенные пробелы?}

while k<>0 do {пока есть сдвоенные пробелы}

begin

str:=copy(str,1,k)+ copy(str,k+2,length(str));{копируем до и после пробела}

{ delete(str,k,1);}{ или удаляем лишний пробел}

k:=pos(' ',str); {есть ли сдвоенные пробелы?}

end;

writeln(' строка - результат:');

writeln(str);

end.

Соседние файлы в папке Методичка С++