gpt4 book ai didi

rust - 如何将 i32 转换为表示 ASCII 字符的字符串

转载 作者:行者123 更新时间:2023-11-29 07:55:50 24 4
gpt4 key购买 nike

我这周末要用 Rust 重新做一个项目,我需要将 i32 转换为 ASCII 字符,并使用它作为字符代码。到目前为止,我所拥有的只是隐藏在文件末尾的巨大匹配。不幸的是,std::ascii 不支持这种转换。目前我只是在寻找一种不那么荒谬/更像 Rust 的(?)方法来做到这一点。

fn to_ascii(i: &i32) -> String {
let a = match *i {
0 => "NUL",
1 => "SOH",
2 => "STX",
// ...
125 => "}",
126 => "~",
127 => "DEL",
_ => "",
}
a
}

最佳答案

首先,你不需要返回一个String,一个&'static str就足够了。其次,您可以简单地设置一个包含您喜欢的所有代码表示的 &'static str 数组,并使用 .get(_) 获取相关的字符串切片,只要您所有的字符代码都是连续的(如果我的 ASCII 正确,它们应该是连续的)。即使它们不是,您也可以随时在空白处放置空字符串。

代码应该如下所示:

const CHARS: [&'static str; 128] = ["NUL", "SOH", "STX", .., "DEL"];

fn get_char_code(c: i32) -> &'static str {
CHARS.get(c as usize).unwrap_or("")
}

关于rust - 如何将 i32 转换为表示 ASCII 字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35833329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com