Advertisement
Guest User

lol

a guest
Oct 31st, 2014
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.54 KB | None | 0 0
  1.  
  2.  
  3.     #include <stdio.h>
  4.     #include <stdlib.h>
  5.     #include <Windows.h>
  6.     #define N 3
  7.     #define M 100
  8.  
  9.     int Word_Checker(char *string, char *patern);  //перевірка слова
  10.     //int Word_Checker_Rec(char *string, char *patern); //провірка слвоа рекурсивно
  11.     int Rec_While(char *pointer_string, char *pointer_patern, int flag); //Рекурсивний цикл
  12.  
  13.     int main()
  14.     {
  15.         int i;
  16.         char array[N][M]; //масив слів
  17.         char patern[M]; //шаблони
  18.         printf("Enter array words\n");
  19.         for(i=0;i<N;i++)
  20.         {
  21.             gets_s(array[i]);
  22.         }
  23.         printf("Enter patern word\n"); //шаблонне слово
  24.         gets_s(patern);
  25.         for(i=0;i<N;i++)
  26.         {
  27.             printf("%s\t%s\t%s\n",array[i],patern,Rec_While(array[i],patern,0)==255?"Good":"Bad");//255-істина..і гут..євиводимо саме слвоо, шаблон і значення чи це слвоо підходить під шаблон чи не
  28.         }
  29.             system("pause");
  30.         return 0;
  31.     }
  32.  
  33.  
  34.     int Word_Checker(char *string, char *patern) //вказівник на слово , на шаблон вказівник
  35.     {
  36.         char *pointer_string;  //вказівник на слво
  37.         char *pointer_patern;  //вказівник на шаблон
  38.                                  //фолс..прапорець чи слвоо пройшло перевірку
  39.         pointer_string=string;
  40.         pointer_patern=patern;
  41.         while(*pointer_string)  //поки вказівник на нуль символ не піде працювати
  42.         {
  43.             if(*pointer_patern=='*')
  44.                     {
  45.                             pointer_patern++;
  46.                             if(*pointer_patern=='\0') return 255;
  47.                             while(*pointer_string!=*pointer_patern)
  48.                             {
  49.                                 if(pointer_string=='\0') return -255;
  50.                                 pointer_string++;
  51.                             }
  52.                             continue; //це до попереднього вайла
  53.                     }
  54.             if(*pointer_patern=='?')
  55.             {
  56.                 pointer_string++;
  57.                 pointer_patern++;
  58.                 continue;
  59.             }
  60.             if(*pointer_patern==*pointer_string)
  61.             {
  62.                 pointer_string++;
  63.                 pointer_patern++;
  64.                
  65.             }
  66.             else
  67.             {
  68.                 return -255;  //не вірно якщо не співпали
  69.             }
  70.         }
  71.        
  72.     }
  73.  
  74.  
  75.  
  76.  
  77.  
  78. int Word_Checker_Rec(char *pointer_string, char *pointer_patern)
  79. {
  80.     if(*pointer_string=='\0' && *pointer_patern=='\0') return 255;
  81.     if(*pointer_patern=='*')
  82.     {
  83.         pointer_patern++;
  84.         if(*pointer_patern=='\0') return 255;
  85.         else
  86.         {
  87.             while(*pointer_string!=*pointer_patern)
  88.             {
  89.                 if(*pointer_string=='\0') return -255;
  90.                 pointer_string++;
  91.             }
  92.             return Rec(pointer_string+1,pointer_patern+1);
  93.         }
  94.     }
  95.     if(*pointer_patern=='?')
  96.     {
  97.         return Rec(pointer_string+1, pointer_patern+1);  // тут робити плюс 1
  98.     }
  99.     if(*pointer_string==*pointer_patern) // перевіряємо символи
  100.     {
  101.         return Rec(pointer_string+1, pointer_patern+1);
  102.     }
  103.     else
  104.     {
  105.         return -255;
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement