|
안녕하세요.!!
요즘에 스트링 처리를 하는데 어려운점이 있어서..이렇게 도움을 요청합니다..
String word =" the problem is how to search the string matched in the word" ;
String factor ="the";
위와 같은 조건이 주어졌을때 the(factor) 빈도수와 발견된 자리수를 저장하는 함수를 만들려고 합니다..
word의 자리수가 길지 않으면..string pos() 함수와 Substing 함수를 적절히 써서 찾으면 되는데
word 의 자리수가 길어지면(3메가 이상) 이면 속도 문제가 거리네요..
C++ Standard Library 에서 find 함수는 속도가 빠르긴한데 C++ 표준에서 쓰는 String 하고 빌더에서 쓰는 AnsiString 하고 호환이 안되서 문제가 있고 또 개수를 다찾지는 못하더군요(이것은 왜 그런지?)
UltraEditor 의 find 기능에서 찾는 속도 처럼 String 검색을 보다 빠르게 할수 있는 방법이 없는지
빌더도 아래 C++ find 함수 예제 처럼 찾는 범위를 임으로 정할수 있는 방법이 존재하는지 ? 아님 다른 방법이 있는지?
string str1( "Alpha Beta Gamma Delta" );
string::size_type loc = str1.find( "Omega", 0 ); <---
if( loc != string::npos )
cout << "Found Omega at " << loc << endl;
else
cout << "Didn't find Omega" << endl;
먼저 글을 읽어 주신것에 대해서 감사드립니다..
그럼 좋은 답변 기대 하겠습니다..
수고하세요
|