Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- void Check(char *Str, char *Mask)
- {
- if ( !strlen(Mask) )
- {
- std::cout << "YES!\n";
- return;
- }
- else if ( strlen(Mask) > strlen(Str) && strlen(Mask) )
- {
- std::cout << "NO!\n";
- return;
- }
- char *pStr = Str;
- char *pMask = Mask;
- int posStar = strcspn(pMask, "*");
- if ( !posStar )
- {
- pMask++;
- Check(pStr, pMask);
- }
- else
- {
- int ch = 0;
- for ( int i = 0; i < posStar; i++ )
- {
- if ( pStr[i] == pMask[i] || pMask[i] == '?' )
- {
- ch++;
- }
- }
- if ( ch == posStar )
- {
- pStr += posStar+1;
- pMask += posStar;
- Check(pStr, pMask);
- }
- else
- {
- pStr++;
- Check(pStr, pMask);
- }
- }
- }
- void main()
- {
- char String[200] = "asd876abcfuai6d8fa6s8u";
- char Mask[200] = "??***?abc?u?i*u";
- Check(String, Mask);
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement