2013-03-29 2 views
0

문장을 통과하는 프로그램을 만들고 싶습니다. 문자 또는 단어를 찾으면 표시합니다.C++ 단어 검색 문자열

첫 번째 문자/단어를 찾자 마자 멈추는 프로그램을 생각해보십시오.

string test("This is sentense i would like to find ! "); //his is sentense to be searched 
    string look; // word/char that i want to search 

    cin >> look; 

    for (i = 0; i < test.size(); i++) //i<string size 
    { 
     unsigned searcher = test.find((look)); 
     if (searcher != string::npos) { 
      cout << "found at : " << searcher; 
     } 
    } 

답변

1

루프가 필요하지 않습니다. 그냥 수행

여기
std::cin >> look; 
std::string::size_type pos = test.find(look); 
while (pos != std::string::npos) 
{ 
    // Found! 
    std::cout << "found at : " << pos << std::endl; 
    pos = test.find(look, pos + 1); 
} 

는 입력 문자열 "is"의 결과를 나타내는 live example이다.

+0

예.하지만 전체 문장을 읽지는 않을 것입니다. 예 : 만약 내가 "숯"에 대한 검색을 시도하면 그것은 단지 9 위를 찾을 수 있습니다. –

+0

@ user2114862 : 오, 그래서 모든 사건을 조사하고 싶습니까? –

+0

예, 문자 "e"를 세 번 표시하고 위치를 표시해야합니다. –