在 OCaml 中将 char 转换为字符串

Posted

技术标签:

【中文标题】在 OCaml 中将 char 转换为字符串【英文标题】:Convert char to string in OCaml 【发布时间】:2013-12-24 19:54:09 【问题描述】:

我想将 char 转换为字符串,但我没有找到函数 string_of_char。我想只使用 Pervasives 中的函数来做到这一点。

【问题讨论】:

我真的建议你正式学习ocaml,这里有一本最近最好的书,它的html版本是免费的:realworldocaml.org/v1/en/html/index.html 仅使用 Pervasives 中的函数是不可能的,并且接受的答案不尊重此约束,因此最好将其从问题中编辑出来(连同“感谢你帮忙”,这不符合 SO 准则)。如果您的意思是“来自默认标准库”,那么使用 String.make 的答案就可以了。如果您的意思是“使用一些标准库”,那么使用 Core 的也可以。 【参考方案1】:

你可以使用 String.make :)

String.make 1 mychar

【讨论】:

我说我只想使用 Pervasives 中的函数 Pervasives 中没有这个功能。只需阅读手册。 人们不假思索地投票!在这种情况下你为什么不给我投票? 您提出了很多问题,您应该能够通过自己的很少研究来回答这些问题。在我看来,这不是 *** 的一个很好的用途(可能是那些投票给你的人——在这种情况下不是我的 FWIW)。 为什么? String 模块是标准库的一部分。【参考方案2】:

如果你使用Core,你可以写

open Core.Std

let s = Char.to_string 's'

【讨论】:

【参考方案3】:

另一个你可以使用的:

Char.escaped 'a'

【讨论】:

【参考方案4】:

如果您不想要 OCaml* 附带的标准库之外的任何依赖项,您还可以使用格式字符串将字符转换为字符串。

从一个字符中创建一个 1 字符的字符串

Printf.sprintf "%c" ch

(注意大写C)为给定字符创建一个包含OCaml表示法的字符串

Printf.sprintf "%C" ch

例如:

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

*Printf 本身不是Pervasives 的一部分

【讨论】:

以上是关于在 OCaml 中将 char 转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将字符串转换为 char 数组?

适合在函数参数中将字符串文字转换为 char * 吗?

在C#中将Char数组转换为字符串[重复]

如何在 C++ 中将字符串转换为 const char[]

在 C 中将 char* 转换为 wchar*

在 OCaml 中创建 char Trie