Сравнение слов и вывод не повторяющихся букв (написать функцию) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Сравнить 2 слова и вывести не повторяющиеся буквы.

Например:

бог ог

Результат:

б

Проверить по символьно 1 слово с 2, а потом 2 с 1. Описать это в одной функции.

Решение задачи: «Сравнение слов и вывод не повторяющихся букв (написать функцию)»

textual
Листинг программы
  1. //gcc 5.4.0
  2.  
  3. #include  <stdio.h>
  4.  
  5. void f(const char *word1, const char *word2) {
  6.     size_t i, j;
  7.     for (i=0; word1[i]; ++i) {
  8.         for (j=0; word2[j]; ++j)
  9.             if (word1[i] == word2[j])
  10.                 break;
  11.         if (!word2[j])
  12.             putchar(word1[i]);
  13.     }
  14.     for (i=0; word2[i]; ++i) {
  15.         for (j=0; word1[j]; ++j)
  16.             if (word2[i] == word1[j])
  17.                 break;
  18.         if (!word1[j])
  19.             putchar(word2[i]);
  20.     }
  21. }
  22. int main(void)
  23. {
  24.     char w1[] = "Hello";
  25.     char w2[] = "world";
  26.     f(w1, w2);
  27.     return 0;
  28. }

Объяснение кода листинга программы

В этом коде функция f принимает два указателя на строки (const char *), которые представляют собой слова, и выводит на экран все уникальные буквы из этих слов в порядке их появления. Список действий, которые происходят в коде:

  1. Инициализация двух указателей i и j нулевыми значениями.
  2. Первый цикл проходит по каждому символу в слове word1.
  3. Второй цикл проходит по каждому символу в слове word2.
  4. Если символы в текущих позициях i и j совпадают, то циклы прерываются и значение переменной j устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла.
  5. Если после завершения внутреннего цикла значение переменной j равно нулю, то выводится символ из слова2.
  6. Если после завершения внутреннего цикла значение переменной j не равно нулю, то выводится символ из слова1.
  7. Второй цикл начинается с новой итерации с обновленными значениями i и j.
  8. После завершения второго цикла значение переменной i устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла.
  9. Первый цикл начинается с новой итерации с обновленными значениями i и j.
  10. Если после завершения первого цикла значение переменной i равно нулю, то выводится символ из слова2.
  11. Если после завершения первого цикла значение переменной i не равно нулю, то выводится символ из слова1.
  12. Первый цикл начинается с новой итерации с обновленными значениями i и j.
  13. Код повторяет шаги с 4 по 11 до тех пор, пока все символы обоих слов не будут обработаны.
  14. Значение переменной i устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла.
  15. Если после завершения первого цикла значение переменной i равно нулю, то выводится символ из слова2.
  16. Если после завершения первого цикла значение переменной i не равно нулю, то выводится символ из слова1.
  17. Первый цикл начинается с новой итерации с обновленными значениями i и j.
  18. Код повторяет шаги с 4 по 16 до тех пор, пока все символы обоих слов не будут обработаны.
  19. Значение переменной j устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла.
  20. Вывод символа из слова2. В итоге, если запустить этот код с входными данными Hello, world, то он выведет на экран все уникальные буквы из этих слов в порядке их появления, то есть: H, e, l, l, o, w, r, l, d.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы