2016-07-31 12 views
1

Ich portiere Lua zu Chaiscript. Der ursprüngliche lua-Code verwendet split:Kann chaiscript string split wie lua?

function string:split(delimiter) 
    local result = { } 
    local from = 1 
    local delim_from, delim_to = string.find(self, delimiter, from ) 
    while delim_from do 
     table.insert(result, string.sub(self, from , delim_from-1)) 
     from = delim_to + 1 
     delim_from, delim_to = string.find(self, delimiter, from ) 
    end 
    table.insert(result, string.sub(self, from )) 
    return result 
end 

Aber ich kann nicht chaiscript Version von split finden ... Hat eine split Funktion chaiscript haben?

Antwort

2

ChaiScript string Funktionalität ist eine direkte Zuordnung von, was in C++ verfügbar ist, std::string. Also, nein, es gibt keine integrierte Split-Fähigkeit.

0

Sie können ganz einfach Ihr eigenes wie das hier ein verwenden: Split a string in C++?

#include <string> 
#include <sstream> 
#include <vector> 

void split(const std::string &s, char delim, std::vector<std::string> &elems) { 
    std::stringstream ss; 
    ss.str(s); 
    std::string item; 
    while (std::getline(ss, item, delim)) { 
     elems.push_back(item); 
    } 
} 


std::vector<std::string> split(const std::string &s, char delim) { 
    std::vector<std::string> elems; 
    split(s, delim, elems); 
    return elems; 
}