2016-04-22 61 views
2

创建INTS的名单我想读这个结构线:OCaml的从字符串

7 12 129224 2 124 12 2 51 

并把字符串的元素在INT表如下所示:

[7; 12; 129224; 2; 124; 12; 2; 51] 

数字可以有任何大小,负数不会被考虑。这是我到目前为止:

let size_s = read_int();; (* size_s is the number of elements within the String. In this case it's 8. *) 
let s = read_line();; 

回答

1

我不确定你正在阅读的第8个字母。它不会在您的示例中显示。

但是,这个旧答案显示了将字符串转换为整数列表的一种方法:How to convert a string to integer list in ocaml?

下面是INT的多种尺寸的例子:

List.map int_of_string (Str.split (Str.regexp "[^0-9]+") "123 8 67 4");; 
- : int list = [123; 8; 67; 4] 
+0

我包括为size_t,因为它可以在某人的溶液中使用。至于你提供给我的链接,我已经看到它,但我认为它只能帮助我转换一个尺寸的整数,如0,1,2,3,4,5,6而不是可变长度int,231。谢谢回复。 – sasam

+0

这是不正确的。该代码适用于任何非负数整数。 –

+0

你的解决方案是正确的,但我只设法使其在顶层工作,我应该如何着手编译和运行该程序?打开Str?我应该包括任何命令在Linux终端像str.cma?谢谢 – sasam