求vb高手,简单明了

2025-01-01 10:15:03
推荐回答(4个)
回答1:

1,首先 & 是将字符串连接起来的符号,例如:
"A" & "B" 的结果是“AB”
S1 = “He”
S2 = “llo”
那么:S = S1 & S2 结果,使得S里存放的是“Hello”
现在对符号 & 的作用理解了吧!

2, Chr(Asc(Mid(str1, i, 1)) + 1)
中的Chr(),Asc(),Mid()都是VB提供的函数;
Chr()的作用是返回括号里的数字所对应的ASCII字符,例如:
Chr(65),返回“A”
Chr(97),返回“a”
Asc()的作用是返回括号里的ASCII字符所对应的数字,例如:
Asc("A"),返回65
Asc("a"),返回97
Asc("b"),返回98
可以理解,这两个函数是互为反函数!
Mid()函数,叫做取子串函数,就是从指定的字符串里取出指定的子字符串,例如:
SS = "ABCDEFG123MNB"
那么:Mid(SS,4,6)的含义是,从字符串SS的左起第4个字符开始取出连续的6位字符,即取得:
“DEFG12”,其中的数字部分,可以用变量甚至表达式。
现在,我们来解读一下,Chr(Asc(Mid(str1, i, 1)) + 1)的作用与结果
当 i 为1时,从str1的第1位开始,取出1位,然后求它的ASC编码值,再加上1,最后再求相应的ASCII字符,这个的作用就相当于,截取一个字符后,用它的后继一个字符代替,比如截取a,就b,截取x就换成y等等。

回答2:

Chr(Asc(Mid(str1, i, 1)) + 1) 意思是 :从字符串str1倒数第一个字符开始,依次取出一个字符,转换成ascii码,加上1,再转换成字符。str1 & Chr(Asc(Mid(str1, i, 1)) + 1) 表示将str1与转换的字符连接起来。
下面具体分析:Len(str1) 为2,for循环从2开始,依次减1。当i=2时,Mid(str1, i, 1) ="b",Asc(Mid(str1, i, 1))=98,Chr(Asc(Mid(str1, i, 1)) + 1)="c",str1="ab" & "c"="abc",当i=1时,Chr(Asc(Mid(str1, i, 1)) + 1)="b",str1="abc" & "b",循环结束 最后 str1为"abcb"。
你所说的"结果是abab“肯定是不对的。

回答3:

Asc(Mid(str1, i, 1) : 取str1的第 i个字符的Asc码
Chr(Asc(Mid(str1, i, 1)) + 1)取上述字符的下一个字母
str1 & Chr(Asc(Mid(str1, i, 1)) + 1)把这个字母连接到字符串的后面

所以“ab”循环两遍后就成了“abcb"----------你是打错了吧?

回答4:

你这程序有逻辑错误,str1 = str1 & Chr(Asc(Mid(str1, i, 1)) + 1) 似乎应为
  str1 = str1 & Chr(Asc(Mid(str2, i, 1)) + 1)