gpt4 book ai didi

string - 测试普通 lisp 中的非标准 ascii 字符

转载 作者:行者123 更新时间:2023-12-01 10:00:59 27 4
gpt4 key购买 nike

我需要测试一个字符串,看看它是否包含代码高于十进制 127(扩展 ASCII 代码)或低于 32 的任何字符。是否有任何真正好的方法可以做到这一点,或者我是否只需要遍历整个字符串并比较字符的字符代码?我正在使用通用的 lisp 实现 CCL。

最佳答案

正如您自己建议的那样,便携方式是

(defun string-standard-p (string &key (min 32) (max 127))
(every (lambda (c) (<= min (char-code c) max)) string))

可能有一种特定于实现的方式,例如,在 CLISP 中,您可以这样做

(defun string-encodable-p (string encoding)
(every (lambda (c) (typep c encoding)) string))
(string-encodable-p "foo" charset:ascii)
==> T

尽管它实际上会接受所有 ASCII 字符,而不仅仅是 32:127。

(不好意思,我对CCL不熟悉)

但是,我很确定您找不到比您在问题中建议的解决方案更好的解决方案。

关于string - 测试普通 lisp 中的非标准 ascii 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287276/

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