部分文字列を取り出す - lisp-cookbook-ja/common-lisp GitHub Wiki

文字列 シーケンス

部分文字列の取り出しにはsubseq関数を使います。

;; 2文字目から最後までを取り出す
(subseq "0123456" 1)    ;=> "123456"

;; 3文字目から4文字目までを取り出す
(subseq "0123456" 2 4)  ; => "23"

取り出す部分の複製が返されるので、変更しても元の文字列への影響はありません。

;; s2を変更してもs1には影響しない
(let* ((s1 "0123456")
       (s2 (subseq s1 1)))
  (setf (elt s2 0) #\!)
  (list s1 s2))
;=> ("0123456" "!23456")