[ Programing ]/Algorithm

욕설 필터 및 문자 검색

Mister_Q 2011. 10. 10. 14:30


욕설 필터나 해당 문자를 검색할때 유용하다.
템플릿으로 설정 시 char type 이나 w_char type 에 모두 사용 가능 하니 참고 할 것.




 // 구조체나 클래스 멤버 함수로 적용시 static으로 설정하여 헤더에 적용한다.
 template< typename stl_, typename char_ >
 bool CheckProhibition( const stl_& strMessage, const char_* szProhibition )
 {
       if( 0 >= strMessage.size() ) return false;
       if( NULL == szProhibition ) return false;
  
         // 검색 실패
       if( std::string::npos == strMessage.find(szProhibition) )
            return false;
  
       return true;
 }



[ 사용법 ] 

 char* szProhibit[128] = { 0, };
 std::string strName;

 ...
 
 if( filterFunc.CheckProhibition<std::string, char>(strName, szProhibit) )
 {
       return false;
 }


 [ OR Unicode type ]

 w_char_t* szwProhibit[128] = { 0, };
 std::wstring strwName;

 ...
 
 if( filterFunc.CheckProhibition<std::wstring, w_char_t>(strwName, szwProhibit) )
 {
       return false;
 }