Задание 2

Для пропустивших проверочную работу 2 или написавших её не слишком хорошо. А также просто для желающих потренироваться в написании строковых функций.

Написать определение функции findLongestSubstring, находящей самую длинную общую подстроку в двух заданных C-строках. Результат записывается в символьный массив res также в виде C-строки, считать, что места в этом массиве достаточно. Если общей подстроки нет, возвращается пустая строка. Все C-строки должны заканчиваться нуль-символом, их длина никак не ограничивается. Библиотечные функции использовать не разрешается.

По возможности добиться максимально быстрой скорости работы функции.

Написать главную функцию, позволяющую проверить работу функции findLongestSubstring.

Заголовок функции findLongestSubstring приведен ниже.

void findLongestSubstring(const char a[], const char b[], char res[]) {
  // Пример 1: a="acge1234jlk", b="eg2341ilka" ==> res="234"
  // Пример 2: a="1234", b="56789" ==> res=""
  // Пример 3: a="dhjkqlsae", b="kjhdsrd" ==> res="d"
  // ...
}

Проекты присылать на e-mail, указанный в презентациях. Последний срок сдачи задания: 23 ноября, 23:59.

Напоминаю, что интересует САМОСТОЯТЕЛЬНОЕ решение задачи.

Задание 1

NB: только для пропустивших или проваливших проверочную работу 1!

Написать определение функции, складывающей по правилам арифметики два числа a и b (в десятичной системе счисления), представленных в виде C-строк, и записывающей результат в символьный массив res также в виде C-строки. Считать, что места в массиве res достаточно. Все C-строки должны заканчиваться нуль-символом, их длина никак не ограничивается. Результат должен быть равен true, если сложение прошло успешно, или false, если произошла ошибка -- например, встретился нецифровой символ. Библиотечные функции использовать не разрешается.

Написать главную функцию, позволяющую проверить работу функции calcSum.

Заголовок функции calcSum приведен ниже.

bool calcSum(char a[], char b[], char res[]) {
  // Пример 1: a="6543", b="45678" ==> res="52221", возвращаемое значение true
  // Пример 2: a="9999", b="2" ==> res="10001", возвращаемое значение true
  // Пример 3: a="0", b=" " ==> res произвольное, возвращаемое значение false
  // ...
}

NB: числа должны храниться ИМЕННО в виде строк!

Проекты присылать на e-mail, указанный в презентациях. Последний срок сдачи задания: 12 октября, 23:59.