2017-12-11 8 views
-4

누군가이 코드를 도와 줄 수 있습니까? 나는 find_first_of가 무엇인지 이해하지 못한다! = string :: npos ... 이것은 내가 단어를 원하기 때문에 텍스트의 모든 구두점을 제거하는 방법이다. 그러나 나는 모든 것을 정말로 이해하지 못한다. 내 코드에 도움이 되었어. 당신은에 필요한 모든 것을 찾을 수Cant understand! (지도에서 구두점을 제거하십시오)

while (file >> word) 
{ 
    // Remove punctuation. 
    int index; 
    while ((index = word.find_first_of(".,!?\\;-*+")) != string::npos) 
    { 
     word.erase(index, 1); 
    } 

    ++word_count[word]; 
+2

[documentation] (http://en.cppreference.com/w/cpp)을 찾는 것이 도움이 될 것입니다. – user0042

답변

0

:이 링크를 보면 http://www.cplusplus.com/reference/string/string/find_first_of/

,이 기능은 그것이을 찾고 문자 중 하나를 발견 한 곳의 문자열의 위치를 ​​반환 find_first_of. 이러한 문자를 찾지 못하면 string::npos을 반환합니다.

그래서 코드에서 루프는 단어의 문자 .,!?\\;-*+ 중 하나에 대한보고는 더 이상 이러한 문자를 감지하지 않을 때까지 (함수가 string::npos를 반환 할 때), 그들에게 하나 ( word.erase(index, 1)) 하나를 제거하는 우리가 루프를 빠져 나오는 지점.

+1

감사합니다. 훌륭한 설명! –

+0

만족 스럽다면 주제를 닫기위한 해결책으로 내 대답을 태그해야합니다. 당신의 일에 행운을 비네! – oldabl

+0

죄송합니다. 지금 완료하셨습니다. –