Напечатать только те буквы слов, которые встречаются в обоих словах только один раз - C (СИ)

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

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

2) Даны два слова. Напечатать только те буквы слов, которые встречаются в обоих словах только один раз. Например, если заданные слова "процессор" и "информация", то ответом должно быть : п е ф м а я.

Решение задачи: «Напечатать только те буквы слов, которые встречаются в обоих словах только один раз»

textual
Листинг программы
#include <stdio.h>
#define N 80
//Даны два слова. Напечатать только те буквы слов, которые встречаются в обоих словах только один раз.
void NoRepeatLetters(char* , char* );
int main()
{
    char str1[N], str2[N];
    puts("Enter first word:");
    fgets(str1, N, stdin);
    puts("Enter second word:");
    fgets(str2, N, stdin);
    puts("Letters which occur in both words only once:");
    NoRepeatLetters(str1, str2);
    NoRepeatLetters(str2, str1);
    return 0;
}
void NoRepeatLetters(char* w1, char* w2)
{
    char* p, *q, *m;
    int flag = 0;
    for(m = w1; *m; m++, flag = 0){
        for(p = w1; *p; p++){
            if(p != m){
                if(*m == *p){
                    flag = 1;
                    break;
                }
            }
        }
        if(!flag){
            for(q = w2; *q; q++){
                if(*m == *q){
                    flag = 1;
                    break;
                }
            }
            if(!flag)
                putchar(*m);
        }
    }
}

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

В этом коде реализована функция NoRepeatLetters, которая принимает два строковых параметра типа char*. Эта функция ищет и выводит только те буквы, которые встречаются в обоих словах только один раз. В основной функции main создаются две строки str1 и str2, в которые считываются два слова, введенные пользователем. Затем вызывается функция NoRepeatLetters, передавая ей эти две строки. Внутри функции NoRepeatLetters используется два вложенных цикла. Внешний цикл проходит по каждому символу в первом слове, а внутренний цикл проверяет, встречается ли этот символ во втором слове. Если символ не встречается, то он выводится на экран. Код немного запутан из-за использования указателей, но основная идея заключается в том, что функция NoRepeatLetters ищет и выводит только те буквы, которые встречаются в обоих словах только один раз.

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


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

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

12   голосов , оценка 3.75 из 5
Похожие ответы