Tôi đang cố gắng tìm hiểu boost::spirit
. Ví dụ, tôi đang cố gắng phân tích một chuỗi các từ thành một số vector<string>
. Tôi cố gắng này:Làm thế nào để sử dụng boost :: tinh thần để phân tích một chuỗi các từ vào một vector?
#include <boost/spirit/include/qi.hpp>
#include <boost/foreach.hpp>
namespace qi = boost::spirit::qi;
int main() {
std::vector<std::string> words;
std::string input = "this is a test";
bool result = qi::phrase_parse(
input.begin(), input.end(),
+(+qi::char_),
qi::space,
words);
BOOST_FOREACH(std::string str, words) {
std::cout << "'" << str << "'" << std::endl;
}
}
mà mang lại cho tôi kết quả này:
'thisisatest'
nhưng tôi muốn đầu ra sau đây, trong đó mỗi chữ là lần xuất hiện riêng rẽ:
'this'
'is'
'a'
'test'
Nếu có thể, tôi d muốn tránh phải xác định lớp con qi::grammar
của riêng tôi cho trường hợp đơn giản này.
cũng được giải thích, +1 – sehe