TC官方合作论坛

标题: 替换字符串中指定位置的字符——源码 [打印本页]

作者: 贪吃蛇    时间: 2014-2-13 21:13
标题: 替换字符串中指定位置的字符——源码
本帖最后由 贪吃蛇 于 2014-2-13 22:15 编辑

直接上源码,还请大大们多指正,我会将修改过的源码发回帖。人人为我,我为人人。
  1. function rechar(str,char,pos=-1)
  2.     //替换字符串中指定位置的字符
  3.     //参数:str,原字符串;char,用于替换的字符串;pos,整数型,被替换字符所在位置,从0开始计数,值为-1时,替换右边相同个数的字符.
  4.     //示例:rechar("0123456789","abc",3)的值是"012abc6789"
  5.     sizeS=str.strleng(str)
  6.     sizeC=str.strleng(char)
  7.     if(pos<-1 || pos>sizeS || sizeS-pos+1<sizeC)
  8.         traceprint("指定的位置超出原字符串长度,或原字符串从指定位置开始剩余的字符数量少于要替换的字符数,字符串原样返回")
  9.         return str
  10.     endif
  11.     if(pos==-1)
  12.         pos=sizeS-sizeC
  13.     endif
  14.     return str.strsub(str,0,pos)&char&str.strsub(str,pos+sizeC,sizeS)
  15. endfunction
复制代码




作者: 贪吃蛇    时间: 2014-2-13 22:05
这个函数改了一下,把添加字符的功能加了进去,多了个参数,源码如下:
  1. //在字符串中指定位置添加或替换字符
  2. function rechar(str,char,pos=-1,add=false)
  3.     //替换字符串中指定位置的字符
  4.     //参数:str,原字符串;char,用于替换的字符串;pos,整数型,被替换字符所在位置,从0开始计数,值为-1时,替换右边相同个数的字符或把字符加到最右边.
  5.     //示例:rechar("0123456789","abc",3)的值是"012abc6789"
  6.     sizeS=str.strleng(str)
  7.     sizeC=str.strleng(char)
  8.     if(add==false)//替换        
  9.         if(pos<-1 || pos>sizeS || sizeS-pos+1<sizeC)
  10.             traceprint("指定的位置超出原字符串长度,或原字符串从指定位置开始剩余的字符数量少于要替换的字符数,字符串原样返回")
  11.             return str
  12.         endif
  13.         if(pos==-1)
  14.             pos=sizeS-sizeC
  15.         endif
  16.         return str.strsub(str,0,pos)&char&str.strsub(str,pos+sizeC,sizeS)   
  17.     else//添加
  18.         if(pos==-1)
  19.             pos=sizeS
  20.         endif
  21.         return str.strsub(str,0,pos)&char&str.strsub(str,pos,str.strleng(str))
  22.     endif   
  23. endfunction
复制代码

作者: 今非    时间: 2014-2-16 16:17
不错  不错 新生的大神啊 -----
作者: 贪吃蛇    时间: 2014-2-16 20:25
今非 发表于 2014-2-16 16:17
不错  不错 新生的大神啊 -----

大大拿俺耍笑了,俺只是新手,纯小白一枚,正在练基础。看看Rainshine的帖子,很多很全面的。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1