2016-07-31 1 views
1

Je porte lua à chaiscript. Le code Lua d'origine utilise split:Can chaiscript chaîne divisée comme 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 

Mais je ne peux pas trouver la version chaiscript de split ... Est-chaiscript une fonction split?

Répondre

2

La fonctionnalité string de ChaiScript est un mappage direct de ce qui est disponible en C++, std::string. Donc, non, il n'y a pas de capacité de partage intégrée.

0

Vous pouvez facilement utiliser votre propre un comme celui qui se trouve ici: 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; 
}