没有函数能生成重复的字符串吗?
vb吧
全部回复
仅看楼主
level 7
tzchf 楼主
如10个abc,string()只能取到第一个a
2020年09月13日 02点09分 1
level 15
String函数的功能大概是这样实现的:
Function String(Number As Long, Character)
If VarType(Character) = vbString Then Character = Asc(Character)
'生成重复字符的算法略
End Function
也就是如果第二个参数给的是字符串类型,则调用Asc函数将其转换成字符编码;说白了,String函数是用字符编码这个【数字】来生成重复字符串的,因此只能是一个字符在重复
(注:String函数真正的内部实现可能并非如此,但是至少在“取第一个字符”这个特性上,String和Asc是一致的;而且,如果String的第二参数用了空字符串,会跟Asc("")一样报错误5:无效的过程调用或参数,这让人更有理由怀疑String内部就是调用了Asc函数[滑稽]
2020年09月13日 02点09分 2
level 9
自己写一个呗
2020年09月13日 04点09分 3
所谓函数,都是可以自己写的。VB 只是提供了一些常用的函数,不可能囊括所有的功能。所以需要一些系统没有提供的函数,就自己写就是。
2020年09月13日 07点09分
吧务
level 13
' c1 是即将重复的字符串;m 是需要重复的次数
' 调用格式:cString(c1, m)
Function cString(Byval c1 As String, Byval m As Integer) As String
Dim i As Integer
cString = c1
For i = 2 To m
cString = cString & c1
Next
End Function
2020年09月13日 07点09分 4
1