카테고리 없음
[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