gpt4 book ai didi

lisp - 循环遍历字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:47 26 4
gpt4 key购买 nike

我似乎无法尝试循环遍历字符串以查找不在另一个字符串中的字符。该程序的目标是遍历第一个字符串并记录不在另一个字符串中的字符。不在另一个字符串中的字符将在所有检查完成后打印出来。它们可能不会重复,因此我尝试使用三个循环。

我正在尝试调试下面的代码,因为我最终必须相互检查两个字符串,我想手动执行此操作以了解具体方法。

CG-USER(258): (defun stringprod (string1 string2) 
(let ((newString nil))
(let ((letterSearchOn nil))
(loop for i from 0 below (length string1)
always
(setf (letterSearchOn (char string1 i))
(loop for j from 0 below (length string2)
(for ch = (char string2 j)
(/when (find ch letterSearchOn :test #'equal)
(append newString ch)))))))))
STRINGPROD
CG-USER(260): (stringprod "abc" "abc")
Error: (FOR CH = (CHAR STRING2 J)
(/WHEN (FIND CH LETTERSEARCHON :TEST #'EQUAL)
(APPEND NEWSTRING CH))) found where LOOP keyword expected.
Current LOOP context: FOR J FROM 0 BELOW (LENGTH STRING2)
(FOR CH = (CHAR STRING2 J)
(/WHEN (FIND CH LETTERSEARCHON :TEST #'EQUAL) (APPEND NEWSTRING CH))).
[condition type: PROGRAM-ERROR]
CG-USER(261):

最佳答案

这样的事情怎么样?

(defun remove-unsafe (str unsafe)
(remove-duplicates
(remove-if #'(lambda (c) (find c unsafe)) str)))

关于lisp - 循环遍历字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9255565/

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