当我尝试在 Dlang 中使用 slice 来获取字符串的特定数据时,就发生了这样的情况,类似于在 C++ 中使用 substr() 和 Java 中使用 substring() 。
因为我在Dlang中找不到substring函数的官方替代,所以我使用了slice函数......如何解决?
word
默认为空字符串 ""
,长度为 0。它作为参数 count
传递到 data
函数中。
在
count
函数中,变量 space
的值为 " "
,长度为 1。
在您的
count
函数中,您使用条件 x < data.length - space.length
。
所以你要从 0 中减去 1。
length
在数组上是一个无符号值,这意味着表达式值不是 -1,而是 size_t.max
。因此,循环永远不会终止,并且循环内的数组访问会越界。
回答你的问题,切片相当于一个典型的子字符串函数,你做得对!
我还建议阅读std.algorithm.find,以及其他算法函数,您不必自己实现这些。