На десятой лекции (8 ноября) проходили работу со строками, повторили понятие и принцип работы нуль-терминированных строк.

Задания на практику

Реализовать следующие процедуры:

Процедура, которая в каждом слове циклично сдвигает литеры на K позиций влево.
Например: `'привет как дела' при K = 2 становится 'иветпр кка ладе'`.

(* Вставляет строку what в строку s на позицию to так, что s[to] = what[0] *)
PROCEDURE Insert(VAR s: ARRAY OF CHAR; what: ARRAY OF CHAR; to: INTEGER);

(* Первую букву, найденную в строке, делает заглавной, остальные - строчными.  Пример: '322привет' -> '332Привет'   *)
PROCEDURE Capitalize(VAR s: ARRAY OF CHAR);

(* Первую букву каждого предложения в строке s делает заглавной, остальные - строчными.  Пример: 'привет? да' -> 'Привет? Да'   *)
PROCEDURE Capitalize(VAR s: ARRAY OF CHAR);

(* Добавляет what в конец строки s. *)
PROCEDURE Append(what: ARRAY OF CHAR; VAR s: ARRAY OF CHAR);

(* Возвращает TRUE, если строки равны без учёта регистра. *)
PROCEDURE CompareI(a, b: ARRAY OF CHAR): BOOLEAN;

(* Начинается ли строка s с подстроки with? *)
PROCEDURE StartsWith(s, with: ARRAY OF CHAR): BOOLEAN;

PROCEDURE Repeat(s: ARRAY OF CHAR; n: INTEGER; VAR out: ARRAY OF CHAR);

PROCEDURE NextWord(s: ARRAY OF CHAR; start: INTEGER;
VAR index, len: INTEGER);

Пример работы процедуры NextWord
## Код:
```
NextWord('привет как дела', 0, index, len);
index = 0  len = 6

NextWord('привет как дела', 6, index, len);
index = 7  len = 3
                 (10 = 7 + 3 = index + len)
NextWord('привет как дела', 10, index, len);
index = 11  len = 4

NextWord('привет как дела', 15, index, len);
index = ?   len = 0
```
