如何在Golfscript中找到字符串的索引?

Sat*_*ish 3 esoteric-languages golfscript

给定一个字符串"ABCDE",如何在Golfscript中找到另一个字符串"C"的出现索引?

?运算符似乎不起作用(http://www.golfscript.com/golfscript/builtin.html#?):

"C""ABCDE"?

Pet*_*lor 5

"C""ABCDE".,,@`@`{@>1$,<=}++?
Run Code Online (Sandbox Code Playgroud)

有没有办法,"C" "ABCDE" ?将工作-如果做了一个字符串搜索,它会寻找第一次出现ABCDEC.

但是,在GolfScript中,字符串实际上是整数数组的不同表示."ABCDE"67?给出2因为67是Unicode代码点C.

一个稍微好一点的方法,你可能期望工作,但不是(X)

"C""ABCDE".,,\`{>1$,<}+%\?
Run Code Online (Sandbox Code Playgroud)

这是违反直觉的,但"正确":?是一个订单操作,字符串优先于数组.相比:

[[1][2][3][4][5]][3]?
["1""2""3""4""5"]"3"?
Run Code Online (Sandbox Code Playgroud)

第一个给出2,如预期的那样,但第二个给出-1,因为string的优先级意味着它在字符串中搜索数组 - 并且没有数组将等于表示Unicode代码点的int.但是,这些示例确实指出了在使用方法X之前将字符串减少为整数数组的另一种方法.

更新

我发了一封邮件,以凶残提示补丁和最新版本Golfscript的有新的行为string string ?string array ?.所以如果你更新,"ABCDE""C"?应该给2.