Мегаобучалка Главная | О нас | Обратная связь


Строковые процедуры функции




 

Ну, теперь мы знаем о строках достаточно. Если говорить про обработку строк, то все сводится к работе с одномерными массивами (ведь строка – это одномерный массив символов).

Например, если потребуется вставить строку S1 в строку S, начиная с позиции pos, то код соответствующей процедуры может выглядеть так:

 

procedure Ins(const S1 : string; var S : string; pos : byte); var L, I : integer; begin L := ord(S1[0]);  { определяем длину S1} for i:=255 downto pos+L do S[i] := S[i-L;] { Сдвигаем элементы в S,                                     начиная с позиции pos , на L позиций вправо} for i:=1 to L do S[pos+i-1] := S1[i]; {копируем в освободившееся                                                       пространство строку S 1} S[0] := chr(ord(S[0])+L); {корректируем новую длину S} end;

 

Если вы достаточно трудолюбивы, то вам больше ничего и не нужно. Алгоритмы выполнения основных операций над строками достаточно просты. Но, тем не менее, стоит ознакомиться с набором подпрограмм обработки строк, предоставляемых системой Borland Pascal.

 

1. procedure Delete(var St: string; Poz, N: integer) – удаление из строки St N символов, начиная с позиции Poz.

2. procedure Insert(St1: string; var St2: string; Poz: integer) – вставка строки St1 в St2, начиная с позиции Poz.

3. procedure Str(Chislo; var St: string) – преобразует числовое значение Chislo в строку St.

4. procedure Val(St: string; var Chislo; var Code: integer) - преобразование строки St в число (целое или вещественное) Chislo. Code – целочисленная переменная, содержит номер первого ошибочного символа (если преобразование прошло без ошибок, то Code=0).

5. function Copy(St: string; Poz, N: integer): string – выделение из строки St подстроки длиной N, начиная с позиции Poz.

6. function Concat(St1, St2, ..., StN: string): string – последовательное сцепление аргументов списка.

7. function Length(St:string): integer – определение длины строки St.

8. function Pos(St1, St2: string): byte – определение позиции первого вхождения строки St1 в St2. Если вхождений не найдено, то возвращается ноль.

 

Пример. Определить в строке позиции, на которых стоят цифры, и найти сумму этих цифр.

uses crt; var s: string;       k, sum: word;       n: byte; BEGIN ClrScr; writeln ('Введите строку:'); Readln (s); n:=length(s); for k:=1 to n do    if (s[k]>='0' and s[k]<='9') then    begin       sum:=sum+ord(st[k]-48);       Write(k:3)    end; Writeln('Сумма цифр= ', sum); END.

 






Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (153)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)