itoboy 发表于 2013-7-9 19:25:14

请指点,怎么把文字分开表示?

假如输入一段文字“明经CAD社区”,怎么把该文字分开输出“明”“经”“C”“A”“D”“社”“区”。

Gu_xl 发表于 2013-7-9 19:47:10

本帖最后由 Gu_xl 于 2013-7-9 20:00 编辑

(defun splitstr (str / strlst a l)
(setq strlst (VL-STRING->LIST str))
(while strlst
    (setq a (car strlst) strlst (cdr strlst))
    (if (< a 176)
      (setq l (cons (list a )l))
      (setq l (cons (list a (car strlst)) l)
            strlst (cdr strlst)
            )
      )
    )
(mapcar 'VL-LIST->STRING (reverse l))
)

itoboy 发表于 2013-7-9 20:39:22

Gu_xl 发表于 2013-7-9 19:47 static/image/common/back.gif


谢谢,问题解决了。

ZZXXQQ 发表于 2013-7-9 20:47:08

来个传统的
(defun splitstr (str / strlst a i)
(setq i 1)
(while (< i (strlen str))
   (if (< (ascii (setq a (substr str i 1))) 176)
    (setq strlst (cons a strlst) i (1+ i))
    (setq strlst (cons (substr str i 2) strlst) i (+ i 2))
   )
)
(mapcar 'prin1 (reverse strlst)) (print)
;(reverse strlst)
)
页: [1]
查看完整版本: 请指点,怎么把文字分开表示?