は、データは、このようなものです:C++マルチ分割文字列
0010|chocolate|cookie;458|strawberry|cream;823|peanut|butter;09910|chocolate|icecream
ので最初のiは、food
の各セクションをsepareする必要があります(とsepared「;」) "chocolate"
が含まれているfood
セクションのみのID
を取得すると、データが静的でないため、food
セクションが"chocolate"
と表示される回数を予測できないという問題があります。それは作品
#include <string>
#include <sstream>
#include <vector>
#include <iostream>
#include <fstream>
using namespace std;
vector<string> &split(const string &s, char delim, vector<string> &elems)
{
stringstream ss(s);
string item;
while (getline(ss, item, delim))
{
elems.push_back(item);
}
return elems;
}
vector<string> split(const string &s, char delim)
{
vector<string> elems;
split(s, delim, elems);
return elems;
}
char* data = "0010|chocolate|cookie;458|strawberry|cream;823|peanut|butter;09910|chocolate|icecream";
int main()
{
vector<string> food = split(data, ';');
cout << number of food sections is : " << food.size();
return 0;
}
が、今私はそれがすべてのセクションに読んで、私をリストする:ここで
は私は食品のセクションを分割したデータであるセクションの量を取得するコードですその後、私はおそらく私が使用するのと同じ分割ベクトルで可能であることにchocolate
を、含まれているセクションの唯一のIDを一覧表示
0010|chocolate|cookie
09910|chocolate|icecream
:どれがのようなその上に「チョコレート」が含まれています。
0010
09910
これを行うには正規表現std :: regeexを使用してください – Asesh