Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4.  
  5. void Check(char *Str, char *Mask)
  6. {
  7.     if ( !strlen(Mask) )
  8.     {
  9.         std::cout << "YES!\n";
  10.         return;
  11.     }
  12.     else if ( strlen(Mask) > strlen(Str) && strlen(Mask) )
  13.     {
  14.         std::cout << "NO!\n";
  15.         return;
  16.     }
  17.  
  18.     char *pStr = Str;
  19.     char *pMask = Mask;
  20.  
  21.     int posStar = strcspn(pMask, "*");
  22.  
  23.     if ( !posStar )
  24.     {
  25.         pMask++;
  26.         Check(pStr, pMask);
  27.     }
  28.     else
  29.     {
  30.         int ch = 0;
  31.         for ( int i = 0; i < posStar; i++ )
  32.         {
  33.             if ( pStr[i] == pMask[i] || pMask[i] == '?' )
  34.             {
  35.                 ch++;
  36.             }
  37.         }
  38.  
  39.         if ( ch == posStar )
  40.         {
  41.             pStr += posStar+1;
  42.             pMask += posStar;
  43.             Check(pStr, pMask);
  44.         }
  45.         else
  46.         {
  47.             pStr++;
  48.             Check(pStr, pMask);
  49.         }
  50.     }
  51. }
  52.  
  53. void main()
  54. {
  55.     char String[200] = "asd876abcfuai6d8fa6s8u";
  56.     char Mask[200] = "??***?abc?u?i*u";
  57.  
  58.     Check(String, Mask);
  59.     system("PAUSE");
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement