Строки (935851), страница 2
Текст из файла (страница 2)
COD – содержит код возвращаемой ошибки, (0 если преобразование прошло успешно, в противном случае там возвращается номер ошибочного символа
-
Функция COPY(ST,INDEX,COUNT) – функция типа string,, возвращает копию строки ST, длиной COUNT символов, начиная с символа с номером INDEX
Например
Пусть ST = ‘qqqEEEEEEuuuuu’ тогда результатом функции
S:= COPY(ST,4,6) будет строка S => ‘EEEEEE’
-
Функция CONCAT(ST1,ST2,…STN) – функция типа string,, возвращает строку сцепление строк параметров.
ST1,ST2,…STN – переменные или константы строкового типа, используемые для формирования строки результата.
-
Функция LENGTH(ST) - функция типа integer, возвращает текущую длину строки S
-
Функция POS(ST2,ST1) - функция типа integer, возвращает позицию, с которой подстрока ST2 входит в строку ST1 – первое вхождение. Если позиция вхождения не найдена – функция возвращает 0.
-
Процедура FILLCHAR(ST,COUNT,SYM) – формирует и возвращает строку ST длиной COUNT, заполненную символами SYM
ST – переменная строкового типа
COUNT – константа или переменная целого типа
SYM – переменная или константа типа CHAR
-
Функция 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.