sunnylhj 发表于 2015-8-26 11:52:46

有关strcat的用法

现有N个字符,要用 strcat 将N个字符中串起来,代码应该怎样写呢?
如:
N1="A1"
N2="A2"
N3="A3"
N……="N……"


edata 发表于 2015-8-26 12:24:45

一般写法
(strcat n1 n2 n3 ...nn)

如果字符串是表则
(apply 'strcat (list n1 n2 n3 ... nn))

edata 发表于 2015-8-26 13:59:41

z版的写法会有bug,如果表超过255,那么eval出错。
_$ (setq i 0 lst '())(repeat 255 (setq lst(cons (itoa i) lst))(setq i(1+ i)))
nil
255
_$ (eval(cons 'STRCAT lst))
"2542532522512502492482472462452442432422412402392382372362352342332322312302292282272262252242232222212202192182172162152142132122112102092082072062052042032022012001991981971961951941931921911901891881871861851841831821811801791781771761751741731721711701691681671661651641631621611601591581571561551541531521511501491481471461451441431421411401391381371361351341331321311301291281271261251241231221211201191181171161151141131121111101091081071061051041031021011009998979695949392919089888786858483828180797877767574737271706968676665646362616059585756555453525150494847464544434241403938373635343332313029282726252423222120191817161514131211109876543210"
_$ (setq i 0 lst '())(repeat 256 (setq lst(cons (itoa i) lst))(setq i(1+ i)))
nil
256
_$ (eval(cons 'STRCAT lst))
; error: internal restriction: too many arguments in function call: STRCAT
_$

sunnylhj 发表于 2015-8-26 14:13:09

edata 发表于 2015-8-26 13:59 static/image/common/back.gif
z版的写法会有bug,如果表超过255,那么eval出错。

学习了!!

zzl9105 发表于 2018-5-19 12:45:02

本帖最后由 zzl9105 于 2018-5-19 13:02 编辑

我想将变量名bq所代表的字符串写进strcat,应该如何表达呀,bq="abc"
(strcat "我爱学习" " (itos bq) ")结果成了:"我爱学习 (itos bq) "
(strcat "我爱学习" bq)结果成了:我爱学习 bq

bq是这样赋值的
(setq bq (cdr (assoc 1 (entget en)))

Andyhon 发表于 2018-5-19 13:21:05


Command: (setq bq "abc")
"abc"

Command: (strcat "我爱学习" bq)
"我爱学习abc"

您再思...

fcrosstour 发表于 2018-6-1 11:23:13

学习了。。。
页: [1]
查看完整版本: 有关strcat的用法