检查Scheme中的字符串包含

时间:2009-11-18 04:00:34

标签: scheme

如何在 DrScheme 中检查字符串是否包含给定的字符/子字符串?如果在模块中定义了适当的模块,该如何包含?

3 个答案:

答案 0 :(得分:1)

在DrScheme中,假设语言设置为“模块”,以下内容将起作用

#lang scheme
(require (lib "13.ss" "srfi"))

(string-contains "1234abc"  "abc")

答案 1 :(得分:0)

没有标准程序可以做到这一点。 SRFI 13包含您需要的过程(字符串索引)。请检查您的Scheme是否实现了此SRFI。

答案 2 :(得分:0)

这是一个快速的黑客攻击。它返回字符串t中字符串s的索引(基于0)。或#f如果找不到。如果您的Scheme有SRFI-13支持或其他内置支持,可能不是最好的方法。

代码已编辑。感谢Eli的建议。

(define (string-index s t)
  (let* ((len (string-length s))
        (max (- (string-length t) len)))        
    (let loop ((i 0))
      (cond ((> i max) 
             #f)
            ((string=? s
                       (substring t i (+ i len)))
             i)
            (else (loop (+ i 1)))))))