dim str as string 
比如str="csdnet"这个字符串
现在我想要在里面插入".",然后输出,像这样
c.sdnet 
cs.dnet 
csd.net 
csdn.et 
csdne.t 
c.s.dnet 
c.sd.net 
...
c.s.d.n.e.t
有什么算法吗?
 

解决方案 »

  1.   

    对于只插入一个"."的情况
    str="csdnet"
    for i=1 to len(str)
    y=mid(str,i,1) & "." & right(str,len(str)-1)
    print y
    next
    在窗体上输出
    c.sdnet 
    cs.dnet 
    csd.net 
    csdn.et 
    csdne.t
    对于插入多个"."的 我考虑过用循环嵌套
    但对于字符串长的呢而其想在其中插入多个"."呢。如果用循环嵌套的话岂不是很复杂吗
    希望高手给个可惜的方法!!!!
      

  2.   

    抽象成一个数学模型,10000代表c.sdnet
    01000代表cs.dnet
    ……………………
    11000代表c.s.dnet ……………………
    11111代表c.s.d.n.e.t 
    容易了吧
      

  3.   


    五楼的思路最好。试试写代码:Dim strSrc As String, i As Integer, j As Integer, n As Integer, strRslt() As StringstrSrc = "csdnet" 'Str 是内部函数名,不要用来作变量名
    n = Len(strSrc)ReDim strRslt(n * 2 - 1)
    For i = 0 To n - 1
        strRslt(2 * i) = Mid(strSrc, i + 1, 1)
    Next iFor i = 1 To 2 ^ (n - 1) - 1
        For j = 0 To n - 2
            If i And 2 ^ j Then
                strRslt(j * 2 + 1) = "."
            Else
                strRslt(j * 2 + 1) = ""
            End If
        Next j
        Debug.Print Join(strRslt, "")
    Next i
      

  4.   

    ReDim strRslt(n * 2 - 1) 为什么要这样定义For i = 0 To n - 1 
        strRslt(2 * i) = Mid(strSrc, i + 1, 1) 
    Next i For i = 1 To 2 ^ (n - 1) - 1 
        For j = 0 To n - 2 
            If i And 2 ^ j Then 
                strRslt(j * 2 + 1) = "." 
            Else 
                strRslt(j * 2 + 1) = "" 
            End If 
        Next j 
        Debug.Print Join(strRslt, "") 
    Next i这循环表示什么
    呵呵 大家别笑我啦