2010-06-21 2 views
-1

을 검색내가 예를 들어 문자열을 검색 할 찾고 있어요 표준 : : 문자열

std::string str = "_Data_End__Begin_Data_End"; 
        |_________| |_____________| 
         data  data 
        section1  section2 

나는 그것을 data section2 "보면 않습니다 있는지 확인하려면 str에서"시작 "에 대한 찾고 있어요 경우 "data section1"

길이가 "data section1"이면 알 수 있습니까?

+3

정확히 무엇을 의미합니까? 두 데이터 섹션의 구분은 무엇입니까? "data section1"에 문자열이 없으면 전체 문자열을 스캔하므로 "data section2"에서 표준 find _will_ look을 찾습니다. –

답변

2

std::string::find()은 검색을 시작하는 위치를 표시하는 선택적 인수가 있습니다

str.find("Begin", length_of_data_section1); 
+0

하지만 data_section1에서 검색하는 것은 어떨까요? – Carl17

+1

@ Carl17 :'rfind()': http://www.cplusplus.com/reference/string/string/rfind/ –

2

다음 코드는 "시작"에 대한 문자열을 검색합니다.

std::string::size_type loc = str.find("Begin"); 
if(loc != std::string::npos) 
{ 
    std::cout << "found \"Begin\" at position " << loc << std::endl; 
} 

그리고 데이터 2 장는 (() 위치 0에서 검색을 시작 찾기) 데이터은 section1의 끝에 있기 때문에 당신은 더 이상 코드가 필요하지 않습니다.