可以像lua一样对字符串进行拆分



我正在将lua移植到chaiscript。原始lua代码使用split:

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

但是我找不到chaiscript版本的split。。。chaiscript有split函数吗?

ChaiScript的string功能是C++、std::string中可用内容的直接映射。因此,不存在内置的拆分功能。

您可以很容易地使用自己的方法,就像这里的方法一样:在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;
}

相关内容

最新更新