乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 9|回复: 1

[编程交流] 替换giv上的给定字符

[复制链接]

76

主题

312

帖子

254

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
390
发表于 2022-7-5 16:38:00 | 显示全部楼层 |阅读模式
大家好,
 
我想做一个函数来替换字符串/int的给定位置上的给定字符。
 
例如
如果有一个字符串/int,则为:
- 11111001112022020
我想将此更改为:
- 11111001112012020
 
所以
 
  1. - 111110011120[color="red"]2[/color]2020
  2. - 111110011120[color="red"]1[/color]2020

 
但我想替换的角色每次都不同。
所以我在寻找一个函数,比如:
 
(defun CHANGENUMBER(位置newnumber/)
(setq oldnumber(getvar“UserS1”))
(setvar“UserS1”newnumber)
(普林斯)
)
 
我可以把strcat和strlen结合起来生成te编号。。但是必须有一个更简单的方法。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:23:15 | 显示全部楼层
快速示例:
  1. (defun CharAtN ( cha pos str )
  2.    (if (<= 1 pos (strlen str))
  3.        (strcat (substr str 1 (1- pos)) cha (substr str (1+ pos)))
  4.        str
  5.    )
  6. )
  1. (defun CharAtN ( cha pos str )
  2.    (setq cha (ascii cha))
  3.    (vl-list->string (mapcar '(lambda ( x ) (if (zerop (setq pos (1- pos))) cha x)) (vl-string->list str)))
  4. )
  1. (defun CharAtN ( cha pos str )
  2.    (cond
  3.        (   (= 1 pos) (strcat cha (substr str 2)))
  4.        (   (= "" str) str)
  5.        (   (strcat (substr str 1 1) (CharAtN cha (1- pos) (substr str 2))))
  6.    )
  7. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 13:57 , Processed in 0.450360 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表