meng_ht 发表于 2016-10-18 17:49:13

关于子函数调用的问题

想写一个判定字符串B的第几位为数字的程序
(defun c:pd(/ b)
(setq b "AsdddsBCD51qw1")
(setq a(pan b))
(print a)
)


;;----------------------第几位为数字

(defun pan(f_1 / long bi time cap asc )
(setq long(strlen f_1));long字符串长度
(setq bi 0)            ;bi为数字位数
(setq time 1)                ;time为循环标志
(while(<= time long)
    (setq cap(substr f_1 time 1))        ;cap为该位字符
    (setq asc(ascii cap))                ;asc为字符的ASC码               
    (if(and(< asc 58)(> asc 47)) (setq bi time time long) )
    (setq time(+ time 1))
    )
(setq bi bi)
)   
返回值正确

如果主函数pd的参数(程序中的变量b)的变量名变成和子函数pan的形参名相同(如主函数pd的变量b的名字改为变量bi),返回值就是错误的,这是为什么呢。求指导
页: [1]
查看完整版本: 关于子函数调用的问题