Сравнение слов и вывод не повторяющихся букв (написать функцию) - C (СИ)
Формулировка задачи:
Сравнить 2 слова и вывести не повторяющиеся буквы.
Например:
бог огРезультат:
бПроверить по символьно 1 слово с 2, а потом 2 с 1. Описать это в одной функции.
Решение задачи: «Сравнение слов и вывод не повторяющихся букв (написать функцию)»
textual
Листинг программы
//gcc 5.4.0 #include <stdio.h> void f(const char *word1, const char *word2) { size_t i, j; for (i=0; word1[i]; ++i) { for (j=0; word2[j]; ++j) if (word1[i] == word2[j]) break; if (!word2[j]) putchar(word1[i]); } for (i=0; word2[i]; ++i) { for (j=0; word1[j]; ++j) if (word2[i] == word1[j]) break; if (!word1[j]) putchar(word2[i]); } } int main(void) { char w1[] = "Hello"; char w2[] = "world"; f(w1, w2); return 0; }
Объяснение кода листинга программы
В этом коде функция f
принимает два указателя на строки (const char *), которые представляют собой слова, и выводит на экран все уникальные буквы из этих слов в порядке их появления.
Список действий, которые происходят в коде:
- Инициализация двух указателей
i
иj
нулевыми значениями. - Первый цикл проходит по каждому символу в слове
word1
. - Второй цикл проходит по каждому символу в слове
word2
. - Если символы в текущих позициях
i
иj
совпадают, то циклы прерываются и значение переменнойj
устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла. - Если после завершения внутреннего цикла значение переменной
j
равно нулю, то выводится символ из слова2. - Если после завершения внутреннего цикла значение переменной
j
не равно нулю, то выводится символ из слова1. - Второй цикл начинается с новой итерации с обновленными значениями
i
иj
. - После завершения второго цикла значение переменной
i
устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла. - Первый цикл начинается с новой итерации с обновленными значениями
i
иj
. - Если после завершения первого цикла значение переменной
i
равно нулю, то выводится символ из слова2. - Если после завершения первого цикла значение переменной
i
не равно нулю, то выводится символ из слова1. - Первый цикл начинается с новой итерации с обновленными значениями
i
иj
. - Код повторяет шаги с 4 по 11 до тех пор, пока все символы обоих слов не будут обработаны.
- Значение переменной
i
устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла. - Если после завершения первого цикла значение переменной
i
равно нулю, то выводится символ из слова2. - Если после завершения первого цикла значение переменной
i
не равно нулю, то выводится символ из слова1. - Первый цикл начинается с новой итерации с обновленными значениями
i
иj
. - Код повторяет шаги с 4 по 16 до тех пор, пока все символы обоих слов не будут обработаны.
- Значение переменной
j
устанавливается равным нулю, чтобы начать следующую итерацию внешнего цикла. - Вывод символа из слова2.
В итоге, если запустить этот код с входными данными
Hello
,world
, то он выведет на экран все уникальные буквы из этих слов в порядке их появления, то есть:H
,e
,l
,l
,o
,w
,r
,l
,d
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д