我的程序似乎无法识别 Lua 中的空格
2021-2-8 11:43:32
收藏:0
阅读:142
评论:1
必须为学校制作一个程序。基本上,您有一个字符串,需要使用代码将其保密。秘密字符串是每个字母+字母表中的秘密代码。因此,BALL将成为EDOO,代码为3。空格在字母表中的位置为零,如果位置+代码大于26,则新字母为string + code - 26。现在每当我执行我的程序并添加空格时,它只是在空格之前“翻译”第一部分。顺便说一下,旁边的注释是荷兰语,不是很重要。
local code = 3
local string = string.upper("spaghetti carbonara") --string
local alfabet = " ABCDEFGHIJKLMNOPQRSTUVWXYZ" --alfabet
local lengte = 6 --lengte van string
for getal1 = 1, lengte do -- for want moet herhaald worden/getal
local letter = string.sub(string, getal1, getal1) -- letter uit de string halen
local locatie = string.find(alfabet, letter) -- letter vinden in alfabet
if locatie + code < 26 then
locatie2 = locatie + code -- nieuwe locatie vinden met code
elseif locatie + code > 26 then
locatie2 = locatie + code - 26
end
local letter2 = string.sub(alfabet, locatie2, locatie2) -- letter die overeenkomt met locatie
io.write(letter2)
end
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

首先,你不应该像在第2行所做的那样使用变量
string。这不是巧合使你的程序崩溃,因为所有字符串都具有一个指向string的元方法,为__index。你应该将该变量重命名为其他名称(text,input,str等)。除此之外,你的程序对我来说似乎完全正常。将一堆空格添加到输入中会添加一堆“C”到输出中。也许你只是忘记将
local lengte = 6更改为local lengte =#string了?因为目前它只会“翻译”字符串中的前6个字符。关于如何改进此问题的提示:如果将一个表作为第三个参数传递给
string.gsub,则可以用单个调用替换整个加密/解密部分:local code = {} code["a"] = "b" code["b"] = "a" print(string.gsub("abc", ".", code)) -- 输出“bac” -- 将“a”替换为“b”,如表所示 -- 同样,将“b”替换为“a” -- “c”不是表中的键,因此被忽略然后你只需要建立一个将你想要替换的每个字符映射到你想要以其替换的字符的表,这会更容易实现:
local function decrypt_encrypt_dictionaries(alphabet, offset) local encrypt, decrypt = {}, {} --填充两个表的代码在此处 :D return encrypt, decrypt end local ROT13_encrypt, ROT13_decrypt = dectypt_encrypt_dictionaries("abcde"--[[...等等]], 13) local some_text = io.read() --加密一些文本: local encrypted = string.gsub(some_string, ".", ROT13_encrypt) --再次解密: local original = string.gsub(encrypted, ".", ROT13_decrypt) --看看它是否相同: print(original)正如我在上面提到的,这只是将难度从加密/解密转移到构建两个Lua表,我将让你自己解决。