string.byte(s, i, j) 在字符与其ASCII码之间转换。 string.char 函数接收零个或多个整数,并将每个整数转换成对应的字符,然后返回一个由这些字符构成的字符串。 string.byte 返回字符串s中第i到第j个字符的ASCII值,i值默认等于1,j值默认等于i。 print(string.byte('google')) -- 103 print(string.byte(...
1)string.byte 函数string.byte 把字符串里的第 i 个字符转为 ASCII 编码,默认是输出第一个字符的编码(只有一个参数的 话) string.byte (s [, i [, j]]) 例如: ''' print(string.byte("abc")) //echo:97 print(string.byte("abc", 2))//echo:98 ''' 2) string.char 函数string.char 是...
>string.format("the value is:%d",4)the valueis:4 7string.char(arg) 和 string.byte(arg[,int]) char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)。 >string.char(97,98,99,100)abcd>string.byte("ABCD",4)68>string.byte("ABCD")65> 8string.len(ar...
print(string.char(96, 97, 98)) print(string.char()) -- 参数为空,默认是一个0, -- 你可以用string.byte(string.char())测试一下 print(string.char(65, 66)) --> output `ab AB 如果你只是想对字符串中的单个字节进行检查,使用 string.char 函数通常会更为高效。 7)string.match(s, p [, ...
string.sub() 用于截取字符串,原型为: string.sub(s,i[, j]) 参数说明: s:要截取的字符串。 i:截取开始位置。 j:截取结束位置,默认为 -1,最后一个字符。 实例 -- 字符串 localsourcestr ="prefix--runoobgoogletaobao--suffix" print("\n原始字符串",string.format("%q", sourcestr)) ...
byte("Lua",3)) -- 倒数第一个字符 print(string.byte("Lua",-1)) -- 第二个字符 print(string.byte("Lua",2)) -- 倒数第二个字符 print(string.byte("Lua",-2)) -- 内部 ASCII 字值转换为字符 print(string.char(97))执行上面的代码可以得到如下的输出结果: ...
lu_byte shrlen; /* length for short strings */ unsigned int hash; char contents[LUAI_MAXSHORTLEN]; } TString; 这里luaM_newshortstr函数用于分配一个短字符串的内存,它的实现如下: TString*luaM_newshortstr(lua_State*L,intl){GCObject*o=luaC_newobj(L,LUA_TSTRING,sizelstring(l));TString*ts...
看lua的注释,指的是保证该结构后面的内存是满对齐的,由于lua在创建字符串时,会把实际的char数组紧挨着该UTString结构来存储,所以我这边的理解是lua是为了加速对该结构后面char数组的访问。关于C的内存对齐,我不是很熟悉,参考了一篇网上的帖子,如有不正确的地方欢迎指出~ stringtable 最后一个相关的结构,是lua对短...
Header;lu_byte extra;/* reserved words for short strings; "has hash" for longs */lu_byte shrlen;/* length for short strings */unsigned int hash;union{size_t lnglen;/* length for long strings */struct TString*hnext;/* linked list for hash table */}u;char contents[1];}TString;...
string.char() 接受 0 个或多个整数作为参数,然后将每个整数转换成对应的字符,最后返回由这些字符连接而成的字符串 string.byte(s, i) 返回字符串s的第i个字符的内部数值表示,该函数第二个参数是可选的。直接调用 string.byte(s) 那么会返回第一个字符的内部数值,其实就是ascii值 ...