Вывести сообщение true, если введённое слово совпадает с введённым шаблоном - C (СИ)

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

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

Здравствуйте. Задача на обработку последовательности символов такая: Программа просит ввести шаблон (который состоит из букв и знаков вопроса) и слово. Выводит сообщение true, если введённое слово совпадает с введённым шаблоном, и false в обратном случае. Например, если введённый шаблон - m&u&e, то слова mouse и mauze соотвествуют шаблону, а слово mouses - нет. Как это реализовать? Заранее спасибо.

Решение задачи: «Вывести сообщение true, если введённое слово совпадает с введённым шаблоном»

textual
Листинг программы
#include <stdio.h>
 
int equals(const char* pattern, const char* str) {
    for (; *pattern && *str; ++pattern, ++str) {
        if ((*pattern != '&') && (*pattern != *str)) {
            break;
        }
    }
    return (*pattern == *str);
}
 
 
int main() {
    char pattern[32], str[32];
 
    if (scanf("%31s %31s", pattern, str) == 2) {
        printf("%s\n", equals(pattern, str) ? "true" : "false");
    }
 
    return 0;
}

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

  1. Включаем файл стандартного ввода/вывода
  2. Функция equals() принимает два указателя на строки (const char*). Первый указатель указывает на начало шаблона, второй - на начало строки, которую мы сравниваем.
  3. Мы итерируемся по символам шаблона и строки, пока не достигнем конца одного из них.
  4. Если текущий символ шаблона не равен '&' и не равен текущему символу строки, то мы прерываем цикл с помощью оператора break.
  5. Возвращаем значение, равнозначное тому, что и последний символ шаблона и строки, который мы сравнивали.
  6. В функции main() мы объявляем две строки типа char, которые будут использоваться для ввода шаблона и строки с клавиатуры.
  7. Мы считываем две строки с помощью функции scanf(). Первая строка считывается в переменную pattern, вторая - в переменную str.
  8. Мы выводим результат сравнения с помощью функции printf(). Результат будет либо true, либо false.

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


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

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

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