Проверить, являются ли слова анаграммами - C (СИ)

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

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

Привет всем. Помогите, пожалуйста, написать программу на языке Си. Задание: Пользователь вводит два слова (или две строки). Проверить, являются ли они анаграммами. Анаграмма — слово состоящее из того же набора символов. Пример анаграмм: smartest mattress В программе необходимо сосчитать, сколько раз какая-либо буква повторяется в первом слове. Далее необходимо сосчитать, сколько раз та же самая буква повторяется во втором слове. И если количество повторений всех букв совпадает в обоих словах, то слова являются анаграммами.

Решение задачи: «Проверить, являются ли слова анаграммами»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
 
int main () {
  int n = 10;
  
  char a[n + 1];    
  printf("Введите первое слово, состоящее не более чем из десяти символов: \n");
  if (scanf("%10s", a) != 1) {
   printf("Ошибка ввода\n");
   exit(EXIT_FAILURE);
   }
   
  char b[n + 1];
  printf("Введите второе слово, состоящее не более чем из десяти символов: \n");
  if (scanf("%10s", b) != 1) {
   printf("Ошибка ввода\n");
   exit(EXIT_FAILURE);
   }
   
  printf("Сравним строки: %s и %s\n", a, b);
  int l = 26;
  int word[l];
  for (int i = 0; i < l; i++) {
   word[i] = 0;
  }
  char *s = a;
  while (*s != '\0') {
   if (isalpha(*s)) {
    
   }
   s++;
   }
 
  int word2[l];
  for (int i = 0; i < l; i++) {
   word2[i] = 0;
  }
  char *t = b;
  while (*t != '\0') {
   if (isalpha(*t)) {
    
   t++;
  }
  
  
  if(*s == '\0' && *t == '\0') {
   printf("Данные строки являются анаграммами!\n");
   } else {
    printf("Данные строки НЕ являются анаграммами.\n");
   }
}

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

В этом коде:

  1. Пользователю предлагается ввести два слова, состоящих не более чем из десяти символов.
  2. Введенные слова сохраняются в массивах a и b соответственно.
  3. Далее выполняется проверка на наличие ошибок ввода. Если была допущена ошибка, программа выводит сообщение об ошибке и завершает свое выполнение.
  4. Затем выполняется сравнение двух строк a и b.
  5. Для каждого символа в строке a и b создаются массивы word и word2 соответственно.
  6. Затем выполняется цикл по всем символам в строках a и b. Если символ является буквой, то его количество увеличивается в соответствующем массиве.
  7. После завершения цикла проверяется, являются ли строки анаграммами. Если оба массива равны, то выводится сообщение о том, что строки являются анаграммами. В противном случае выводится сообщение о том, что строки не являются анаграммами.

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


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

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

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