求助!这段程序怎么会报错:参数类型错误stringp nil
;该程序用以筛选输入字符串中的小写字母和数字并输出(defun c:ti6 ()
(setq a (getstring "请输入字符串:"))
(setq n (strlen a));字符串长度
(setq i 1)
(setq x nil) ;建立一个新字符串容器
(while (<= i n)
(setq ai (substr a i 1)) ;ai为字符串a的第i个元素
(setq asci (ascii ai)) ;asci为第i个元素SCII码
(if (or (and (>= asci 97) (<= asci 122)) (and (>= asci 49) (<= asci 57));筛选小写字母(97,112)和数字(49,57)
);该if语句有问题,提示数据类型错误stringp nil
(setq x (strcat x ai));将符合要求的字符添加入容器x
)
(setq i (+ 1 i))
);while循环到此结束
(print x)
) 问题出在(setq x nil)一句,初始化字符串,应该使用(setq x "")。 (setq x nil) ;建立一个新字符串容器
改为 (setq x "") 琴剑江山_10184 发表于 2016-1-25 11:06 static/image/common/back.gif
(setq x nil) ;建立一个新字符串容器
改为 (setq x "")
谢谢果然正确了 ll_j 发表于 2016-1-25 11:03 static/image/common/back.gif
问题出在(setq x nil)一句,初始化字符串,应该使用(setq x "")。
谢谢。果然如此
页:
[1]