0x01 我爱的切割
切割字符串的功能在开发中很常见,基本上都会用到。在c里面没有这个功能,需要自己的撸出来。这让习惯了python或者perl的小伙伴很蛋疼。由于目前项目基于c开发,用到split的功能,而且实际上用c实现很麻烦,正好混lua开发,所以想用lua实现。
0x02 coding
说干就干,必须要以码会友。
#!/usr/bin/lua
common = {}
-- 切割函数(split功能)
-- szFullString 待切割数据
-- szSeparator 切割判断
function common.split(szFullString, szSeparator)
local nFindStartIndex = 1
local nSplitIndex = 1
local nSplitArray = {}
while true do
local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
if not nFindLastIndex then
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
break
end
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
nFindStartIndex = nFindLastIndex + string.len(szSeparator)
nSplitIndex = nSplitIndex + 1
end
return nSplitArray
end
return common
由于我比较懒,所以默认我都是做封装的,比如封装成一个包,在lua上,你可以放在package里面,然后根据自己需要引入lua的包。
0x03 后记
大家都说c+lua混合性能很高,但是实际上高到什么程度我还没真心体会出来,可能比较菜鸟。还在努力中。。。在搞split的时候,就发现好多案例,最后能用的就这个。。。好吧~