因为Lua字符串是允许含有0字符的,但是在C/C++里是不允许出现的,否则字符串将会被截断出现非预期的结果。
这里使用正则表达式去除Lua字符串中的0字符:
--可能有终结符 s = ''; for name in string.gmatch(wndtext,"[^%z]") do s = s..name; end
%z表示0字符,^%z表示非零的字符,[]用来创建字符集,整个正则表达式的意思是匹配整个字符串中任何一个非零的字符,循环中再把这些非零字符拼接起来就是去除0字符后的字符串了。