+(defun remove-char-string (char str)
+ (declare (character char)
+ (string str))
+ (do* ((len (length str))
+ (out (make-string len))
+ (pos 0 (1+ pos))
+ (opos 0))
+ ((= pos len) (subseq out 0 opos))
+ (declare (fixnum pos opos len)
+ (simple-string out))
+ (let ((c (char str pos)))
+ (declare (character c))
+ (when (char/= c char)
+ (setf (schar out opos) c)
+ (incf opos)))))
+
+