gpt4 book ai didi

common-lisp - 检查字符是否在字符串中

转载 作者:行者123 更新时间:2023-12-04 02:30:28 27 4
gpt4 key购买 nike

在 Common Lisp 中,是否有谓词来测试给定的字符是否是字符串的一部分?或者更一般地说,如果一个元素是一个向量的成员?

就像是:

(char-in #\o "foo")

我能够实现它
(defun char-in (c s)
(member c (coerce s 'list)))

有没有更好的办法?

最佳答案

字符串是向量。向量是序列。

字符串是向量和 sequences 。所以他们的所有操作都适用:

查找项目:

CL-USER 59 > (find #\X "fooXbar")
#\X

CL-USER 60 > (find #\x "fooXbar")
NIL

查找项目的位置:
CL-USER 61 > (position #\x "fooXbar")
NIL

CL-USER 62 > (position #\X "fooXbar")
3

搜索子序列:
CL-USER 63 > (search "X" "fooXbar")
3

CL-USER 64 > (search "x" "fooXbar")
NIL

默认测试是 EQL

所有函数都使用 EQL 作为默认测试,但您可以使用另一个 - 例如不区分大小写的查找将是:
CL-USER 65 > (find #\x "fooXbar" :test #'char-equal)
#\X

关于common-lisp - 检查字符是否在字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52241906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com