Вывести сообщение 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; }
Объяснение кода листинга программы
- Включаем файл стандартного ввода/вывода
- Функция equals() принимает два указателя на строки (const char*). Первый указатель указывает на начало шаблона, второй - на начало строки, которую мы сравниваем.
- Мы итерируемся по символам шаблона и строки, пока не достигнем конца одного из них.
- Если текущий символ шаблона не равен '&' и не равен текущему символу строки, то мы прерываем цикл с помощью оператора break.
- Возвращаем значение, равнозначное тому, что и последний символ шаблона и строки, который мы сравнивали.
- В функции main() мы объявляем две строки типа char, которые будут использоваться для ввода шаблона и строки с клавиатуры.
- Мы считываем две строки с помощью функции scanf(). Первая строка считывается в переменную pattern, вторая - в переменную str.
- Мы выводим результат сравнения с помощью функции printf(). Результат будет либо
true
, либоfalse
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д