Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <Windows.h>
- #define N 3
- #define M 100
- int Word_Checker(char *string, char *patern); //перевірка слова
- //int Word_Checker_Rec(char *string, char *patern); //провірка слвоа рекурсивно
- int Rec_While(char *pointer_string, char *pointer_patern, int flag); //Рекурсивний цикл
- int main()
- {
- int i;
- char array[N][M]; //масив слів
- char patern[M]; //шаблони
- printf("Enter array words\n");
- for(i=0;i<N;i++)
- {
- gets_s(array[i]);
- }
- printf("Enter patern word\n"); //шаблонне слово
- gets_s(patern);
- for(i=0;i<N;i++)
- {
- printf("%s\t%s\t%s\n",array[i],patern,Rec_While(array[i],patern,0)==255?"Good":"Bad");//255-істина..і гут..євиводимо саме слвоо, шаблон і значення чи це слвоо підходить під шаблон чи не
- }
- system("pause");
- return 0;
- }
- int Word_Checker(char *string, char *patern) //вказівник на слово , на шаблон вказівник
- {
- char *pointer_string; //вказівник на слво
- char *pointer_patern; //вказівник на шаблон
- //фолс..прапорець чи слвоо пройшло перевірку
- pointer_string=string;
- pointer_patern=patern;
- while(*pointer_string) //поки вказівник на нуль символ не піде працювати
- {
- if(*pointer_patern=='*')
- {
- pointer_patern++;
- if(*pointer_patern=='\0') return 255;
- while(*pointer_string!=*pointer_patern)
- {
- if(pointer_string=='\0') return -255;
- pointer_string++;
- }
- continue; //це до попереднього вайла
- }
- if(*pointer_patern=='?')
- {
- pointer_string++;
- pointer_patern++;
- continue;
- }
- if(*pointer_patern==*pointer_string)
- {
- pointer_string++;
- pointer_patern++;
- }
- else
- {
- return -255; //не вірно якщо не співпали
- }
- }
- }
- int Word_Checker_Rec(char *pointer_string, char *pointer_patern)
- {
- if(*pointer_string=='\0' && *pointer_patern=='\0') return 255;
- if(*pointer_patern=='*')
- {
- pointer_patern++;
- if(*pointer_patern=='\0') return 255;
- else
- {
- while(*pointer_string!=*pointer_patern)
- {
- if(*pointer_string=='\0') return -255;
- pointer_string++;
- }
- return Rec(pointer_string+1,pointer_patern+1);
- }
- }
- if(*pointer_patern=='?')
- {
- return Rec(pointer_string+1, pointer_patern+1); // тут робити плюс 1
- }
- if(*pointer_string==*pointer_patern) // перевіряємо символи
- {
- return Rec(pointer_string+1, pointer_patern+1);
- }
- else
- {
- return -255;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement