Пример #1
0
bool IString::isLike(IString s){
	IString _localpattern = "*?";
	IString::iterator _lcstrIterator;
	IString::iterator _lcptrIterator;
	int _strIndex = 0;
	
	_lcstrIterator = this->begin();
	_lcptrIterator = s.begin();
	
	while ( _lcptrIterator != s.end() && _lcstrIterator != this->end() ) {
		if ( *_lcptrIterator == '*'  ) {
			if ( *_lcstrIterator == *(_lcptrIterator+1) ) {
				_lcptrIterator++;
				_lcptrIterator++;
				_lcstrIterator++;
			} else _lcstrIterator++;
		}
		
		if ( *_lcptrIterator == '?'  ) {
			_lcptrIterator++;
			_lcstrIterator++;
		}
 
 		if ( *_lcptrIterator != '*' && *_lcptrIterator != '?' ) {
			if ( *_lcptrIterator != *_lcstrIterator )return false;
			_lcptrIterator++;
			_lcstrIterator++;
		}
	}
	return true;
}