小编mcg*_*mcg的帖子

Lua string.format%c与string.char

Lua string.format( "%c", value )应该相当string.char( value )吗?

当字符值为零时似乎不是.

string.format( "%c", 0 ):len()
Run Code Online (Sandbox Code Playgroud)

返回0

string.char( 0 ):len()
Run Code Online (Sandbox Code Playgroud)

返回1

更奇怪的是,

string.format( "%c%s", 0, "abc" ):len()
Run Code Online (Sandbox Code Playgroud)

返回3 ; 其中%c的任何其他非零模数256值返回4,因此string.format不会像C一样在空字节处截断整个字符串sprintf,只是将%c字段折叠为空字符串而不是单字节字符串.注意,sprintf在这种情况下,C 写入零字节后跟abc字节.

在这种情况下,我在Lua文档中找不到任何描述预期行为的内容.Lua中的大多数其他字符串处理似乎将零字节视为有效的字符串字符.

这是关于OpenWrt的Lua 5.1.4-8.

特质还是错误?

string.format lua openwrt

3
推荐指数
1
解决办法
1286
查看次数

标签 统计

lua ×1

openwrt ×1

string.format ×1