找回密码
 register

QQ登录

只需一步,快速开始

查看: 329|回复: 0

[*LUA4*] strlen("Hello Lua \000What?") 获取字符串长度的一个小陷阱

[复制链接]

[*LUA4*] strlen("Hello Lua \000What?") 获取字符串长度的一个小陷阱

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11929
Waylee 2022-1-9 22:54 | 显示全部楼层 |阅读模式

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×
在 Lua 4.0 中,可以使用 strlen 函数来获取字符串的长度,但是有一些特性容易忽视。
以下是一个例子来展示这一点。

  1. local b1 = strlen("Hello Lua \000What?")
  2. print(b1) -- 输出16,字符串长度包括 '\0' 和它后面的字符

  3. local b2 = strlen("Hello Lua What?")
  4. print(b2) -- 输出15
复制代码


总结
  • 在 Lua 4.0 中,'\0' 或 '\000' 表示一个普通字符,类似的还有 '\n' 换行符。
  • Lua 不会将 '\0' 视为字符串的终止符,与 C 语言的行为不同,'\0' 后面的内容依然会被计算在内。
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-18 15:44 , Processed in 0.099731 second(s), 7 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表