Определить, можно ли из букв первого данного слова получить второе - C (СИ)

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

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

Даны два слова. Определить, можно ли из букв первого из них получить второе. Рассмотреть вариант: повторяющиеся буквы второго слова могут в первом слове не повторяться

Решение задачи: «Определить, можно ли из букв первого данного слова получить второе»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define N 256
 
int main(void)
{
    char word1[N], word2[N], *p1, *p2;
    printf("Enter word 1: ");
    scanf("%s", word1);
    printf("Enter word 2: ");
    scanf("%s", word2);
    for (p2 = word2; *p2 && (p1 = strchr(word1, *p2)) != 0; p2++)
        *p1 = ' ';
    printf(*p2 ? "No\n" : "Yes\n");
    return 0;
}

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

В этом коде:

  1. Сканируются два слова от пользователя.
  2. Переменная p2 инициализируется значением word2.
  3. Переменная p1 инициализируется значением *strchr(word1, p2)**.
  4. Цикл выполняется до тех пор, пока *p2 не станет нулём и при этом p1 не будет равен нулю.
  5. Внутри цикла, если p1 не равен нулю, то *p1 заменяется на пробел.
  6. После цикла, выводится сообщение No, если *p2 равен нулю, иначе выводится сообщение Yes.
  7. Возвращается ноль. Пояснение: В этом коде используется функция strchr(), которая возвращает указатель на первый символ подстроки в строке. Если подстрока не найдена, то возвращается нулевой указатель. В цикле, p1 инициализируется значением strchr(word1, *p2). Это означает, что p1 указывает на первый символ подстроки, соответствующей текущему символу из word2 в word1. Если подстрока найдена, то p1* не будет равен нулю. Цикл выполняется до тех пор, пока p2 не станет нулём и при этом p1 не будет равен нулю. Это означает, что цикл выполняется до тех пор, пока не будет найден последний символ подстроки из word2 в word1**. Если подстрока найдена, то *p1 заменяется на пробел, чтобы указать, что этот символ уже был использован. После цикла, если p1 равен нулю, то это означает, что подстрока из word2 не может быть получена из word1, и выводится сообщение No. В противном случае, выводится сообщение Yes.

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


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

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

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