Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lua string.format %c对string.char

Lua string.format %c对string.char
EN

Stack Overflow用户
提问于 2013-05-15 06:35:50
回答 2查看 1.6K关注 0票数 3

Lua string.format( "%c", value )是否等同于string.char( value )

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string.format( "%c", 0 ):len()

返回0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string.char( 0 ):len()

回报1

更奇怪的是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string.format( "%c%s", 0, "abc" ):len()

返回3;其中%c的任何其他非零模256值都返回4,因此string.format不会像C sprintf那样在空字节处截断整个字符串,而只是将%c字段折叠为空字符串而不是一个字节字符串。请注意,在本例中,C sprintf写入零字节,后面跟着abc字节。

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

这是在OpenWrt上的Lua5.1.4-8上。

怪癖还是虫子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-15 07:17:02

我觉得这是个窃听器。

在Lua5.1和LuaJIT 2.0中,string.format一次格式化一个项(使用主机C运行时提供的sprintf )。然后调用strlen来更新输出字符串的长度。由于strlen在空字符处停止,此字符将被覆盖。

这是为%s记录的行为,但对于%c来说可能是无意的。

这一点在Lua 5.2中得到了修正。我不希望有更多的更新到5.1。

票数 6
EN

Stack Overflow用户

发布于 2013-05-15 21:54:04

在书“编程在lua”第二版。在2.4章中,有这样的上下文:“Lua中的strings具有通常的含义:一个字符序列。Lua是8位干净的,它的字符串可能包含任何数字代码,包括嵌入式零。这意味着您可以将任何二进制数据存储到一个字符串中。”

所以这不是一个错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16567979

复制
相关文章
H7-TOOL的LUA小程序教程第2期:变量,循环,函数,条件语句和字符串相关API
LUA脚本的好处是用户可以根据自己注册的一批API(当前TOOL已经提供了几百个函数供大家使用),实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。 TOOL的LUA教程争取做到大家可以无痛调用各种功能函数,不需要学习成本。 掌握这些基础就够用了。 一、注释 注释、多行注释、取消多行注释: 注释单行
Simon223
2021/12/09
1.1K0
H7-TOOL的LUA小程序教程第2期:变量,循环,函数,条件语句和字符串相关API
H7-TOOL串口脱机烧录操作说明,支持TTL串口,RS232和RS485(2022-06-30)
通过Lua小程序,我们可以方便方便的在线方式做串口固件烧录,也可以离线方式运行Lua小程序做烧录。
Simon223
2022/09/16
5680
H7-TOOL串口脱机烧录操作说明,支持TTL串口,RS232和RS485(2022-06-30)
LUA对Map进行排序
Lua中最常见的数据结构就是Table, 用Table表示Map很容易, 但早期Lua没有提供一个针对Map数据结构的排序方法,下面用Moonscript实现了一个Map型数据结构排序函数方法。
糖果
2019/11/20
3.4K0
lua调用C函数
lua虚拟机(或叫解释器),可以理解为一个thread,和一个完整的Lua虚拟环境的执行状态。
程序手艺人
2019/02/21
2.8K0
少用 string.Format
如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能。这个功能可以更好的帮助开发人员设置字符串格式。下面我们就来看一下为什么要少用 string.Format 而要多用内插字符串,以及内插字符串的优缺点。 String.Format 在 C# 6.0 以前我们会经常用到这个,优点在这里我就不一一阐述了,这里我们主要说一下它的缺点。
喵叔
2020/09/08
1.1K0
挑战一晚上从零入门lua语言,直接对标Python快速上手
缘起:项目要用。 学习时间:懒,所以速战速决吧。 学习方法:直接对标Python。
看、未来
2021/12/01
1.4K0
挑战一晚上从零入门lua语言,直接对标Python快速上手
lua 和c的调用
lua中使用c动态库,像luacjson(支持unicode),luasocket,都是以动态链接库的形式在lua中使用的,至于怎么写这些动态链接库很少有教程说到,下面我就说说如何把c文件编译成动态库。
渴望飞翔的猪
2022/07/17
7220
C语言调用Lua函数[通俗易懂]
记得上学时,初中英文课本中,上网叫做surfing the internet,中文叫网上冲浪。
全栈程序员站长
2022/07/10
2.6K0
Lua Lua Lua!!!
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
云深无际
2022/02/09
3.6K0
Lua Lua Lua!!!
在Lua中实现对UE4 C++代码的自动补全
本文介绍了在Emmylua插件的支持下,如何获取到UE4的反射信息,并如何生成Emmylua格式的Lua注释代码来支持自动补全和跳转。
阿苏勒
2020/03/30
6.3K1
FFLIB之FFLUA——C++嵌入Lua&扩展Lua利器
摘要: 在使用C++做服务器开发中,经常会使用到脚本技术,Lua是最优秀的嵌入式脚本之一。Lua的轻量、小巧、概念之简单,都使他变得越来越受欢迎。本人也使用过python做嵌入式脚本,二者各有特点,关于python之后会写相关的文章,python对于我而言更喜欢用来编写工具,我前边一些相关的算法也是用python来实现的。今天主要讲Lua相关的开发技术。Lua具有如下特点: Lua 拥有虚拟机的概念,而其全部用标准C实现,不依赖任何库即可编译安装,更令人欣喜的是,整个Lua 的实现代码并不算多,可以直接继承
知然
2018/03/09
2.4K0
网络编程 | HTTP协议概要
在2017年10月深圳 Cocos 沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在论坛上第一次看到Colin的团队用CocosCreator制作的《热血暗黑》时就被深深地震撼到了!更为重要的是,Colin将他的技术心得和宝贵开发经验写成文字,每一篇分享都是满满的干货,而且幸运的是Shawn得到Colin的授权许可,与你一起欣赏一起成长!
张晓衡
2019/09/11
4430
网络编程 | HTTP协议概要
Lua和C如何交互(二)
上一篇文章描述了Lua和C交互的原理, 这篇文章主要通过Demo程序加深Lua和C的交互. 涉及到交互,分为:
程序手艺人
2019/02/21
1.3K0
Lua 基础
【转载请注明出处】:https://juejin.im/post/5eae252ae51d454db7436a26
后端老鸟
2020/05/03
2.2K0
Lua 基础
String.Format使用方法
private const string _extraClause = ” AND C_INTERNSHIPORG_INTERNSHIPID = {0}”;
全栈程序员站长
2021/11/24
9560
Lua和C如何交互(一)
全局表中存放了name和hello world的对应关系, 可以通过name在全局表中找到对应的hello world
程序手艺人
2019/02/21
1.4K0
详解C调用lua脚本效率测试
C调用lua脚本效率测试是本文要介绍的内容,以下代码以C语言为基准,测试了C调用Lua循环和循环调用Lua的效率。结论是不要频繁地穿越C/Lua边界.
用户4766018
2022/08/19
8710
C# 中的字符串内插 $对比string.Format
原文:https://blog.csdn.net/HeBizhi1997/article/details/123544524
_一级菜鸟
2023/10/23
2600
C# 中的字符串内插 $对比string.Format
点击加载更多

相似问题

Lua: string.char()的逆?

21

Lua string.format转义

13

Lua string.format选项

45

使用string.format字符的Lua string.format

21

String.format和gsub在Lua

113
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文