카테고리 없음

[C ++] C ++ 다중 분할 문자열

필살기쓰세요 2021. 2. 9. 01:39

데이터가 얼마나 풍부한 지에 따라 다릅니다. 궁극적으로 당신은 그것에 재귀 하강 파서를 던져야합니다. 그러나 이것은 더 간단 해 보입니다.

세미콜론을 이스케이프 할 수 있습니까? 그렇지 않다면 세미콜론을 칠 때마다 인덱스를 증가하는 벡터에 저장하십시오. 기록이 시작됩니다. 그런 다음 기록을 살펴보십시오. 세미콜론까지 레코드로 구성된 임시 문자열을 만든 다음 "chocolate"문자열을 검색합니다. 일치하는 경우 ID는 레코드의 첫 번째 필드이므로 첫 번째 | 캐릭터.

-------------------

함수를 사용하여 다음과 같이 delim으로 구분 된 문자열 내에서 단어를 찾으십시오.

bool find(string vfood, string s, char delim)
{
   std::istringstream to_find(vfood);
      for (std::string word; std::getline(to_find, word, delim); ) if (word == s) return true; 
         return false;
         }
         

그런 다음 각 '음식'문자열에서 원하는 것을 찾을 수 있습니다.

vector<string> food_with_chocolate;

for (string &s : food)
{
    if (find(s, "chocolate", '|')) food_with_chocolate.push_back(s);
    }
    


출처
https://stackoverflow.com/questions/39929993