Проверить, являются ли слова анаграммами - 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"); } }
Объяснение кода листинга программы
В этом коде:
- Пользователю предлагается ввести два слова, состоящих не более чем из десяти символов.
- Введенные слова сохраняются в массивах a и b соответственно.
- Далее выполняется проверка на наличие ошибок ввода. Если была допущена ошибка, программа выводит сообщение об ошибке и завершает свое выполнение.
- Затем выполняется сравнение двух строк a и b.
- Для каждого символа в строке a и b создаются массивы word и word2 соответственно.
- Затем выполняется цикл по всем символам в строках a и b. Если символ является буквой, то его количество увеличивается в соответствующем массиве.
- После завершения цикла проверяется, являются ли строки анаграммами. Если оба массива равны, то выводится сообщение о том, что строки являются анаграммами. В противном случае выводится сообщение о том, что строки не являются анаграммами.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д