caotic 393 Postado Agosto 30, 2013 Share Postado Agosto 30, 2013 (editado) Bem era para estar postando na área de programação mais acho que vai se encaixar mais aqui. Eu crei algumas patterns para strings usando c++. String.explode(string, sep) Ela explode a string separando ela com um separador(unico separador): static int explodestr(lua_State *L) { int len; int l=1; string str = ""; string sep = lua_tostring(L, 2); string y = lua_tostring(L, 1) + sep; len = y.size(); int i =sep.find(sep, 1); lua_createtable(L, len, 0); for (int x=0; x<=len; x++) { str = y.substr(x, 1); if (str == sep) { lua_pushstring(L, y.substr(i+1, (x-i)-1).c_str()); lua_rawseti (L, -2, l); i = x; l = l+1; } } return 1; } Aproveitando o tópico também resolvi postar uma função que tinha feito para um projetinho. strtoArray(string) Retorna uma table com cada caracter da string: Em c++: static int strToArray(lua_State *L) { int len; string y = lua_tostring(L, 1); len = y.size(); lua_createtable(L, len, 0); for (int x=0; x<=len; x++) { lua_pushstring(L, y.substr(x, 1).c_str()); lua_rawseti (L, -2, x+1); } return 1; } Claro que da para fazer em Lua: function strToArray(string) len = #string x = {} for i=1, len do table.insert(x, string.sub(string, i, i)) end return x end Example: string.explode: local ex = string.explode("oi/"oi1"/oi2", "/") for i=1, #ex do print(ex[i]) end strToArray: local table = strToArray("oi") for i=1, #table do print(table[i]) end Editado Agosto 30, 2013 por caotic Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados