본문 바로가기
P/C++

비속어찾기 프로그램

by Where's my namespace 2012. 8. 29.

#include <iostream>
#include <string>
using namespace std;

bool isTermofAbuse(string str) {
     if( 0 <= str.find("시발") && str.find("시발") <= sizeof(str)  ) return 1; 
     else if ( 0 <= str.find("병신") && str.find("병신") <= sizeof(str)  ) return 1;
     else if( 0 <= str.find("멍청") && str.find("멍청") <= sizeof(str)  ) return 1;
     else return 0;  
}

int main() {

     string str; 
     bool check;

     while(cin) {
          cout << "문자열을 입력하세요. " << endl;
          getline(cin, str);
          check = isTermofAbuse(str);
  
          if( true == check) cout << "error : 비속어 포함" << endl;
          else cout << str << endl;
        }

     return 0;
}

 

bool isTermofAbuse 함수는 문자열을 시그니쳐로 받아서, 그 문자열내에 특정단어가 있는지 검사해서 있으면 true 반환.

 

std::string.find() 함수가, 성공시 단어가 있는 곳의 시작점 좌표를 반환하므로, 값이  문자열의 길이 내에 있으면 있는걸로 판단.

 

'P > C++' 카테고리의 다른 글

The Trip  (2) 2014.06.27
ACM 문제중 WERTYU  (0) 2013.09.06
링크드리스트로 하드디스크 흉내내기.  (0) 2012.11.13
Calling  (0) 2012.10.01
strlen(), strcpy() 구현  (0) 2012.08.29