Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod3O.doc
Скачиваний:
5
Добавлен:
14.08.2019
Размер:
6.93 Mб
Скачать

2.6.3. Особенности работы со строками

1. Строку можно вводить и выводить как единое целое с помощью операторов readln, writeIn, например:

read (st); writeln (пример);

2. Значением строки может быть любая последовательность символов, заключенная в апострофы:

А:=abcd1; В:=; {пустая строка}

3. Для строк применима операция слияния.

Слияние строки записывается в естественном виде. Если сумма получается длиннее, чем описанная длина левой части оператора присваивания, излишек отсекается.

var S1, S2, S3, : string;

………………………………….

S1 := Вам;

S2 := привет!';

S3 := S1 + S2; {S3 =Вам привет!}

……………………..

4. Сравнение строк происходит посимвольно, начиная от первого символа в строке. Строки равны, если имеют одинаковую длину и посимвольно эквивалентны.

Результат выполнения операций отношения над строками всегда имеет логический тип и принимает значение True, если выражение истинно, и False, если выражение ложно.

abcd = abcd

true,

abсd <> abcde

true,

abсd <> abcd

false.

Если при посимвольном сравнении окажется, что один символ больше другого (его код больше), то строка, его содержащая, тоже считается большей. Остаток строк и их длины не играют роли. Любой символ всегда больше «пустого места»:

abcd > abcD

(так как d > D)

abсd > abc

(так как d >  )

aBсd < ab

(так как B < b)

Можно, конечно, использовать и нестрогие отношения:

>= или <=.

5. Строку можно рассматривать как массив, состоящий из отдельных символов, например, описания

st : string [25]; и st : array [0..25] of char; идентичны.

Нулевой символ предназначен для указания количества символов в строке и может изменяться от символа с кодом 0 до символа с кодом N. С ним можно работать, как и с остальными символами строки:

N := ord(A[0]); где N длина строки А.

6. Отдельный символ строки совместим с типом char:

var В : string; S : char;

B := Hello;

S := B[1]; {S = H}

В[2] := o; {В =Hоllo}

Для работы со строками в TURBO PASCALе реализовано большое количество стандартных процедур и функций.

2.6.4. Редактирование строк

Функция

length (s : string):word;

вычисляет текущую длину строки s (количество символов в строке). Строка может быть задана идентифи­катором или непосредственно, в апострофах.

s:=Петербург

п:=length(s); {n = 9}

k:=length (Мы изучаем Паскаль); {k = 18}

m:=length ("); {m=0}

Пример. Дана строка s. Создать строку s1 из символов строки s, вставив после каждого символа a символ c.

s1:=’;

for i:=1 to length (s) do

begin s1:=s1 + s[i];

if s[i] = a then s1:=s1 + c

end;

Функция

pos (subs, s:string):byte;

вычисляет номер символа в строке s, с которого начинается первое включение в s подстроки subs. Если же s не содержит в себе subs, то функция даст результат 0.

s:=Компьютер;

п:=pos(ю, s);     {п = 6}

s1:=Kомп;

k:=pos(s1, s);        {k = 1}

Очевидным недостатком функции pos является то, что она возвращает только первую позицию subs в s от начала строки, т. е. после обращения к функции

р := pos (noo, Boonoonoonoos);

она завершит свою работу, вернув значение 4, хотя есть еще и 7, и 10.

Функция

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]