https://repl.it/@IlyaSiganov/strdist#main.c

Расстояние между двумя словами равной длины - это количество позиций, в которых различаются эти слова.

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

В заданном предложении (массив слов) найти пару наиболее отличающихся слов.

Например, дано предложение hello world he11o. Можно составить матрицу расстояний между словами, по которой очевидно, что слова world и he11o наиболее удалены друг от друга в терминах этой метрики.

Для простоты, предложение задайте сразу как массив слов: char* sentence[] = {"hello", "world", "he11o"};. Во время тестирования, будут введены в этот массив другие слова, другой длины.

Программа должна вывести эти два наиболее удаленных слова и расстояние между ними.

Подсказки:

#include "test.h"

struct Result {
  char* word1;
  char* word2;
  int distance;
};

/**
 * Расстояние между двумя строками равной длины - это количество позиций, в которых различаются эти
 * строки. Если слова разной длины, то считается, что меньшее строка забита нулями (в смысле \\0).
 *
 * В заданном массиве строк найти пару наиболее отличающихся строк.
 *
 * @param strings - массив строк (точнее указателей на строк)
 * @param n - длина массива строк
 * @return struct Result
 */
struct Result str_dist(char* strings[], unsigned long n) {
  struct Result res;
  return res;
}

void test(void) {
  // Это тесты. НЕ УДАЛЯЙТЕ ИХ!
  // Преподаватель будет грустить, если вы удалите тесты T_T.
  // Тесты проверяют, что ваш код работает правильно.
  // Если задача решена неправильно,
  // то в консоли вы увидите ошибку и пояснение.
  // Сдавайте лабу, когда устраните все ошибки в тестах.
  // Если возникли трудности, то попросите преподавателя вам помочь ^_^.

  {
    char* sentence[] = {"hello", "world", "he11o"};
    struct Result res = str_dist(sentence, 3);
    ASSERT_INT(5, ==, res.distance);
  }

  {
    char* sentence[] = {"hello", "world", "test1", "lol7777"};
    struct Result res = str_dist(sentence, 4);
    ASSERT_INT(7, ==, res.distance);
  }
  {
    char* sentence[] = {"anime", "4nime", "4n1me", "anim3", "4n1m3"};
    struct Result res = str_dist(sentence, 5);
    ASSERT_INT(3, ==, res.distance);
  }
}

int main(void) {
  test();
  return 0;
}