本帖最后由 wentiandongdi 于 2009-12-27 19:30:12 编辑

解决方案 »

  1.   

    汗,作业题吧
    用split更简单一些
      

  2.   

    对,用split函数很容易实现。
      

  3.   

    拜托,就是作业题所以才要你们按要求做。不然我也知道用split比较简单
      

  4.   

    是你老师给你的作业,还是某某教材上的作业?  说实在的,这个功能用子过程来实现并不合理。
      并且调用也不方便:必须传入一个字符串变量来‘接收’返回值(也许用“接受”这个词更恰当),且它的值在调用时必须为空串(否则有可能造成结果不正确)。  用函数相对好些:传入一个字符串,返回这个串中最长的单词。调用时也没什么限制。
    这是按你的‘要求’写的:
    Sub MaxLength(s$, MaxWord$)    Static wSave$, lFlag&
        Dim i&, Word$
        If (Len(s) = 0) Then
            MaxWord = wSave
            lFlag = 0: wSave = ""
            Exit Sub
        End If
        i = InStr(1, s, " "): Word = Left$(s, i - 1)
        If (Len(Word) > Len(wSave)) Then wSave = Word
        Word = Mid$(s, i + 1)
        If (lFlag = 0) Then lFlag = 1: Word = Word & " "
        MaxLength Word, MaxWordEnd Sub
      

  5.   


    Private Sub MaxLength(s, MaxWord)
        While s <> ""
            i = InStr(s, " ")
            If i <> 0 Then
                Word = Left(s, i - 1)
                s = Mid(s, i + 1)
            Else
                Word = s
                s = ""
            End If
            If Len(MaxWord) < Len(Word) Then _
               MaxWord = Word
        Wend
    End Sub
      

  6.   

    出题者很明显是要求掌握instr函数和left函数