1)如果“-”号右边的字符按照ASCI码的顺序大于左边字符,输出时,用连续递增的字母或数字串替代其中的“-”号,例如:“c-g”输出为“cdefg”,“3-7”输出为“34567”。
2)如果“-”号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,保留中间的“-”号,例如:“a-a”输出为“a-a”,“4-1”输出为“4-1”。
3)如果“-”号右边的字符恰好是左边字符的后继,则删除中间的“-”号,例如“d-e”应输出为“de”,“3-4”应输出为“34”。
某同学按照上述算法,编写了VB程序,功能如下:在文本框Text 1中输入简写字符串,单击“展开”按钮Command 1,程序进行字符串展开处理并显示在文本框Text 2中。程序运行界面如图所示。
Private Sub Command1_Click()
Dim st1 As String, st2 As String, i As Integer
st1=Text1. Text
n=Len(st1)
st2=""
For i=1 To n
If pos(st1, i)Then<> "-" Then
st2=st2+pos(st1, i)
Else
If pos(st1, i-1)<pos(st1, i+1) Then
For j=Asc(pos(st1, i-1))+1 To Asc(pos(st1, i+1))-1
Next j
Else
st2=st2+"-"
End If
End If
Next i
Text2. Text=st2
End Sub
Function pos(s As String, x As Integer) As String '返回字符串s中x位置的字符
End Function