在OCaml中将字符转换为字符串

11

我想将一个字符转换为字符串,但是我没有找到函数string_of_char。 我希望只使用来自Pervasives的函数来完成这个任务。


我非常建议您正式学习OCaml,这是最新和最好的一本书,其HTML版本是免费提供的:https://realworldocaml.org/v1/en/html/index.html - Jackson Tale
3
仅使用 Pervasives 函数不可能完成此操作,而且被接受的答案没有遵守这个限制,因此最好将其从问题中编辑掉(连同“感谢您的帮助”,这不符合 SO 的指南)。如果你的意思是“从默认标准库中”,那么使用 String.make 的答案就可以了。如果你的意思是“使用一些标准库”,那么使用 Core 的答案也可以。 - anol
4个回答

43

您可以使用 String.make :)

String.make 1 mychar

我说过我只想使用Pervasives中的函数。 - user3036156
5
Pervasives 没有这样的函数。只需阅读手册即可。 - rafix
2
人们不加思考地点踩!为什么你在这种情况下要踩我? - user3036156
5
你问了很多问题,其实只要花一点时间自己做些研究就可以得到答案。在我看来(也许你被投票贬低的人也是这么认为),这不是一个好的使用StackOverflow的方式。请注意,这是我的个人意见,而我并没有投票反对。 - Jeffrey Scofield
我已经搜索过了,发现了rafix提供的解决方案,但我正在寻找Pervasives函数。 - user3036156
8
为什么?字符串模块是标准库的一部分。 - Martin Jambon

6
如果您使用Core,您可以编写以下内容:
open Core.Std

let s = Char.to_string 's'

5

你可以使用另一个:

Char.escaped 'a'

3
如果您不想使用OCaml标准库之外的任何依赖项*,也可以使用格式字符串将字符转换为字符串。
将一个字符创建为一个只包含1个字符的字符串。
Printf.sprintf "%c" ch

(注意大写C)创建一个字符串,其中包含给定字符的OCaml表示。

Printf.sprintf "%C" ch

例如:

# Printf.sprintf "%C" '\\';;
- : string = "'\\\\'"
# Printf.sprintf "%C" 'a';;
- : string = "'a'"

*Printf 不是 Pervasives 的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接