В результате строки c и d будут иметь значение ‘У Егорки всегда отговорки’.
ü Сравнение
- происходит посимвольно слева направо: сравниваются коды соответствующих символов до тех пор, пока не нарушиться равенство. При этом сразу делается вывод о знаке неравенства.
Пример:
‘fife’ < ‘three’ (т. к. ‘f’ < ‘t’);
‘4’ > ‘237’ (т. к. ‘2’ < ‘4’);
Две строки называютсяравными, если они равны по длине и совпадают посимвольно.
3. Стандартные процедуры для обработки строковых величин:
1. Процедура удаления delete(s, k, n) – из строки s удаляется n символов, начиная с k - того.
Пример: s = ‘барабан’; delete(s, 5, 2); Результат s = ‘баран’;
2. Процедура вставки insert(s1, s2, n) – строка s1 вставляется в строку s2, начиная с n – го символа.
Пример: s = ‘барабан’; insert(s, ‘щик’, 8); Результат s = ‘барабанщик’;
3. Процедура str(k, s) преобразовывает число k в строку s.
Пример: str(3456, s); s = ‘3456’;
4. Процедура val(s, k, n) преобразовывает строку из цифр s в число k. N – номер позиции первого символа строки s, отличного от цифры.
Пример: val(‘3456’, k, n); k = 3456; n = 0;
val(‘34g56’, k, n); k = 0; n = 3;
4. Стандартные функции для обработки строковых величин:
1. Функция concat(s1, s2, …, sn), аналогична опреации склеивания. Значение функции результат соединения строк s1, s2, …, sn.
Пример: s := concat(‘У Егорки’,’ ‘,’всегда отговорки’); Результат: s = ‘У Егорки всегда отговорки’;
2. Функция copy(s, n, k) – из строки s выделяет k символов, начиная с n-го символа.
Пример: с := copy(‘барабан’, 1, 3); Результат: с = “бар”;
3. Функция length(s) определяет длину строки s.
Пример: s := ‘барабан’; а := length(s); а = 7;
4. Функция pos(s, c) определяет номер позиции, начиная с которой строка s первый раз входит в строку с.
Пример: с:= ‘колокол’; k := pos(‘кол’, c); х := pos(‘дол’, c); Результат: k = 1; х = 0;
Пример1. Составим программу, подсчитывающую количество пробелов в данной строке.
Program probel;
Uses crt;
Var s: string[50];
K, i: integer;
Begin
Clrscr;
Writeln(‘Введите строку’);
Readln(s);
For i:=1 to length(s) do
If s[i] = ‘ ‘ then inc(k);
Writeln(‘Количество пробелов = ’, k);
Readln
End.
Пример 2. Составим программу, подсчитывающую сумму цифр в данной строке.
Program summa;
Uses crt;
Var s: string[50];
K, i, n, l: integer;
Begin
Clrscr;
Writeln(‘Введите строку’);
Readln(s);
For i:=1 to length(s) do
Begin
Val(s[i], n, l);
If l = 0 then k:=k + n;
End;
Writeln(‘Сумма цифр = ’, k);
Readln
End.
Пример 3. Составим программу, определяющую является ли данная фраза перевертышем.
Program perevertish;
Uses crt;
Var s1, s2: string[50];
K, i, n, l: integer;
Begin
Clrscr;
Writeln(‘Введите фразу’);
Readln(s1);
S2:=’’;
For i:=length(s1) downto 1 do
S2:=s2 + s1[i];
If s1 = s2 then Writeln(‘ Перевертыш’)
else Writeln(‘ Не перевертыш’);
Readln
End.
Пример 4. Составим программу, сортирующую список студентов в алфавитном порядке.