Напишите функцию, которая определяет, соответствует ли строка C заданному шаблону. Шаблон является упрощенным регулярным выражением и включает элементы: ^ начало строки; $ конец строки; . любой символ; [abc] один символ из диапазона: a, b или c; [a-z] один символ из диапазона: любая строчная буква латинского алфавита; [^1-9] один любой символ извне диапазона (здесь: любой, кроме цифр); ? предыдущий символ может отсутствовать; + предыдущий символ должен встречаться 1 и более раз; * предыдущий символ может встречаться любое число раз (в том числе не встречаться). Примеры: 1) Шаблон: ова?$ Подходят: Бирюкова Смирнов Не подходят: Корецкая Ковалева Шаблон определяет строки с суффиксами "-ов" и "-ова" (символ "о", затем "в"; потом, возможно, "а" и конец строки), под который подходят фамилии Бирюкова и Сморнов. Фамилия Ковалева содержит подстроку "ова", но не в конце, поэтому не соответствует шаблону. 2) Шаблон: ^[A-Za-z_][A-Za-z_1-9]*$" Подходят: cstdlib __cdecl uint8_t Не подходят: 1st_variable indented Шаблон определяет идентификатор С++: строка, начинающаяся с буквы или подчеркивания и состоящая только из тех же символов и цифр. Строка "1st_variable" не подходит под шаблон, так как её первый символ -- цифра. Строка " indented" также не подходит под шаблон, потому что в начале стоят символы пробела, которых не должно быть по шаблону.