0
私は文字列を持っており、構造体ブロック上の文字列を解析したいと思います。構造化された形式を解析する方法は?
ので、このような文字列で構造:
if(true) {
if(true) {
if(true) {}
}
}
if(true) {
if(true) {
if(true) {}
}
}
そして、私はこのような親ブロックに1を分割したいと思います:
if(true) {
if(true) {
if(true) {}
}
},
if(true) {
if(true) {
if(true) {}
}
}
マイコード:
string condition =
"if(true) {\
if(true) {\
if(true) {}\
}\
}\
if(true) {\
if(true) {\
if(true) {}\
}\
}";
string item;
stringstream stream(condition);
vector<string> array;
//splitting on sections
while (getline(stream, item, '}')) {
array.push_back(item + "}");
}
for(int i = 0; i < array.size(); i++) {
cout << i << array[i] << endl;
}
結果:
0 if(true) { if(true) { if(true) {}
1 }
2 }
3 if(true) { if(true) { if(true) {}
4 }
5 }
しかし必要性:
0 if(true) { if(true) { if(true) {} } }
1 if(true) { if(true) { if(true) {} } }
どのように検出するために、より正確に親ブロックを解析またはアルゴリズムを教えて?
あなたは、文字列を分割したいように思えますか?それが真実なら、いくつかのソリューションを見てください:http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c –
ありがとう、私はすでにその投稿を見ましたが、私はわずかに異なる問題。私は解析するアルゴリズムを理解していません。 –
@AlexanderGuiness:高機能の解析のために、Boost.Spiritを調べるとよいでしょう。 – GManNickG