继续[求助]VB编程的一道题
让用户输入一段字符(中文除外,字符串长度不能大于30),除把a-z排序好输出之外,其他字符都按原来的位置输出
例如:
输入:ccbbaa4ggffee
输出:aabbcc4eeffgg
引用一下版主的话:
先扫描一次 提取出所有字母所在的下标列表存为L(i)
然后以L(i)为下标范围对原字符串进行冒泡排序即可。
我学VB刚刚1星期,就算只给思路也能不能再具体点啊,比如具体用到什么函数?换位思考一下嘛.
非字母的你不理他就是了。
Dim Ins(1000) As String
Dim I,j,k
Dim L(1000) As Integer
j=1
For i=1 to len(inputstr)
Ins(i)=Mid(Inputstr,i,1)
if Instr("abcdefghilmnopqrstuvwxyz",Ins(i))>0 Then
L(j)=I
J=J+1
End If
next
j=j-1
for i=1 to j-1
for k=i+1 to j
If Ins(i)>Ins(k) Then
Ins(i)=Chr(Asc(Ins(j)) Xor Asc(Ins(i)))
ins(j)=Chr(Asc(Ins(j)) Xor Asc(Ins(i)))
Ins(i)=Chr(Asc(Ins(j)) Xor Asc(Ins(i))) '这3行完成变量交换
next 'k
next 'i
Dim Outstr as string
for i=1 to 1000 '本程序中下标从1开始使用的
outstr=outstr & Ins(i)
Next
[此贴子已经被作者于2007-8-30 12:57:32编辑过]