问题略多,求赐教
代码
Private Sub Command1_Click()
Dim str1 As String, str2 As String
str1 = InputBox("")
subf str1, str2
Print str2
End Sub
Sub subf(s1 As String, s2 As String)
Dim temp As String
Static i As Integer
i = i + 1
temp = Mid(s1, i, 1)
If temp <> "" Then subf s1, s2
s2 = s2 & temp
End Sub
输入abcdef后,显示为fedcba,temp在此处是怎么把6个临时变量同时存储的,为什么后面存储的的不会把之前存储的替换掉?在F8运行时,已经结束了sub过程,为什么
s2 = s2 & temp
End Sub
还会重复运行7次?
求赐教
怎么是取s1的最后一位呢,程序用的是mid函数,i是从1开始累加,依次取出的应该是a,b,c,d,e,f,当i累加到7时,执行s2 = s2 & temp,这时返回空字符串。(是不是把temp看做数组,到执行该语句时依次倒序取值?)
追答先取第一位:
Static i As Integer '不重置
i = i + 1 '初始为0,+1后就是1
temp = Mid(s1, i, 1) ‘取第1位
If temp "" Then subf s1, s2 ‘如果不为空,继续取,一直取到最后时,才开始:
s2 = s2 & temp ‘将最后一位加上,然后一个个返回,于是就成了倒过来了。
你说的这段我知道,我有疑惑的是对二楼的追问